C 检查名称是否只包含字母
我有个问题C 检查名称是否只包含字母,c,C,我有个问题 int main () { char name[100]; do { printf("Input name : "); scanf("%[^\n]", name); fflush(stdin); }while() // I don't know what to put here } 问题是如果我的输入不全是字母,如何循环输入名称。例如,如果我输入steve1,它将再次要求输入名称;如果我输入Stev
int main ()
{
char name[100];
do
{
printf("Input name : ");
scanf("%[^\n]", name);
fflush(stdin);
}while() // I don't know what to put here
}
问题是如果我的输入不全是字母,如何循环输入名称。例如,如果我输入steve1,它将再次要求输入名称;如果我输入Steve,它将不会循环 编写一个单独的函数,并在循环条件下使用它。比如说
#include <ctype.h>
//...
int valid_name( const char *name )
{
while ( *name && isalpha( ( unsigned char )*name ) ) ++name;
return *name == '\0';
}
//...
do
{
//...
} while ( !valid_name( name ) );
我不知道该把它放在哪里。你能详细说明一下吗?对不起,我还是初学者this@DonnyAvaris将函数定义放在main之前。这应该为丢弃const发出警告。不仅没有理由这么做,我也不明白你为什么要投。我没有试过这一次,但对于类似的代码,我当然明白了。可能不是香草的选择,但无论如何,这些都不推荐,对初学者来说更少。但即使没有警告,如果使用正确的类型,也没有理由强制转换。我不引用函数外的语句,我知道您知道。isalpha unsigned char*name-是否需要强制转换?fflushstdin;没有任何意义,这是一个错误。一是假设你想要俄语字母表