检查名称是否仅包含字母

时间:2016-12-17 16:48:20

标签: 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”,那么它将再次询问名称;如果我输入“史蒂夫”,那么它将不会循环。

1 个答案:

答案 0 :(得分:1)

编写一个单独的函数并在循环条件中使用它。例如

#include <ctype.h>

//...

int valid_name( const char *name )
{
    while ( *name && isalpha( ( unsigned char )*name ) ) ++name;

    return *name == '\0';
}

//...

do
{
    //...
} while ( !valid_name( name ) );