在这个数据库中,我需要有一些限制,比如名称只能是字母等等。
但是如果我使用scanf("%s, c.name) ,它只读取第一个空格之前的内容,所以如果我要添加像Marie Claire这样的两个名字,我不能使用scanf。
我有一种方法可以检查字符串是否包含数字(将提供它),但我想知道是否可以使fgets()仅接受字母。我也会提供我尝试过的代码,但当我使用这种方法时,它不接受任何输入,只是跳过。
但是如果我使用scanf("%s, c.name) ,它只读取第一个空格之前的内容,所以如果我要添加像Marie Claire这样的两个名字,我不能使用scanf。
我有一种方法可以检查字符串是否包含数字(将提供它),但我想知道是否可以使fgets()仅接受字母。我也会提供我尝试过的代码,但当我使用这种方法时,它不接受任何输入,只是跳过。
printf ("\nPlease enter Name:\n");
while (fgets (c.name, sizeof (c.name), stdin) && cCheck(c.name,100) == FALSE);
{
}
检查数字的方法[使用我自己定义的typedef生成布尔值]
boolean cCheck(char *test, int max)
{
int x;
for (x =0; x<max; x++)
{
if (isdigit(test[x]))
{
return FALSE;
}
if (x==max)
{
return TRUE;
}
x++;
}
return TRUE;
}
blah == FALSE
; 写! blah
更清晰、更安全。 - Keith Thompson