【发布时间】:2014-12-10 16:34:25
【问题描述】:
我的问题是使用 char 和 scanf。您可以在下面找到我几乎可以正常工作的代码。问题与 for 循环有关。你看,我想问用户 10 个字符,并计算字母,但 for 循环无法正常工作。它对输入进行正确计数。例如,如果用户输入 6,可以,或者 a,也可以,但是如果他输入例如 10 或 11,那么程序认为用户输入了 2 个不同的字符,但实际上用户只输入了一个字符“10”。因此,请帮助我并解释为什么带有 char 的 scanf 不能正常工作。谢谢!
#include <stdio.h>
#include <stdlib.h>
unsigned int countalpha(void){
printf("Please enter 10 characters:\n");
char b;
int sum = 0;
int i = 0;
for (i = 0; i<10; i++)
{
scanf("%c\n", &b);
if (isalpha(b))
sum = sum +1;
else
sum = sum;
}
return sum;
}
int main()
{
int sum;
sum = countalpha();
printf ("Letters totally: %d", sum);
return 0;
}
【问题讨论】:
-
嗯,它工作正常。 “10”有 2 个字符 1 和 0!
-
为什么你会认为“10”和“11”是一个字符?您究竟期望什么被视为“一个角色”?任何连续数字的序列?
标签: c