c++ - 检查 struct 的成员是否仅按字母顺序排列

标签 c++

我试过,

if(isalpha(card[i].name))
...

但它说我不能将它与 char 类型一起使用,这是我的代码: 这是结构:

struct firm {
unsigned egn;
char name[80];
char lastname[80];
char department[80];
unsigned salary;
}card[100];

这是我要检查是否只有字母然后继续的函数:

void enter()
{
int i, n;
char temp[80];
do{
    cout<<"Enter how many workers you want to add: ";cin>>n;
}while(!(n>0 && n<101));
for(i=top;i<n;i++)
{/*ЕГН + проверка*/
    cout<<"Enter EGN: ";do{
    cin>>temp;
if((strlen(temp)!=10))
    cout<<"Enter EGN: ";
}while(strlen(temp)!=10);
card[i].egn = (unsigned) atoi (temp);
/*Име Фамилия*/
cout<<"Enter name(only letters): ";cin>>card[i].name;
cout<<"Enter lastname(only letters): ";cin>>card[i].lastname;
cout<<"Enter department: ";cin>>card[i].department;
cout<<"Enter salary: ";cin>>temp;
card[i].salary = (unsigned) atoi (temp);
}
}

当我尝试使用这种代码时:

cout<<"Enter name(only letters): ";do{
cin>>card[i].name;
if(isalpha(card[i].name))
.....;

它说我不能在 int 中使用 char(isalpha 使用 int?)

最佳答案

您需要循环字符串的每个字符,isalpha() 仅测试单个字符。

关于c++ - 检查 struct 的成员是否仅按字母顺序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13682130/

相关文章:

c++ - 涉及私有(private)继承的 C 风格向上转型和向下转型

c++ - 用于创建线程并加入可变数量线程的循环

c++ - С++ 中的字符串文字是在静态内存中创建的吗?

c++ - 从服务器中不同位置的命令行参数传递的打开文件名

c++ - 稀疏读取 50gb 文件

c++ - 如何在没有 std::initializer_list 的情况下列出初始化模板类,使其具有固定大小

c++ - 在 Linux 上使用静态链接时未定义对 g++ 中函数的引用

c++ - 使用 OpenGL 在 SFML 中获取正确的鼠标位置

c++ - 使用 C++20 fmt 限制结果的总大小

c++ - 为什么 RegCloseKey 存在(当 CloseHandle 似乎执行相同的功能时)?