我想知道如何确保只输入字符。有什么想法吗?
printf("Enter Customer Name");
scanf("%s",cname);
最佳答案
您可以读取字符串,然后使用isalpha()
或类似函数扫描它。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define STR(x) #x
#define SSTR(x) STR(x)
#define STR_FMT(x) "%" SSTR(x) "s"
#define CNAME_MAX_LEN 50
int inputName(char *cname)
{
size_t i;
do
{
printf("Enter Customer Name: ");
fflush(stdout);
if (1 != scanf(STR_FMT(CNAME_MAX_LEN), cname))
return 1;
for (i = 0; isalpha(cname[i]); ++i);
}
while (i == 0 || cname[i]);
return 0;
}
int main()
{
char cname[CNAME_MAX_LEN + 1];
if (inputName(cname))
{
perror("error reading in name!\n");
return 1;
}
printf("cname is '%s'\n", cname);
return 0;
}
关于c - C中仅接受字母,不接受整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28918949/