#include <stdio.h>
int main()
{
char text[100];
int length = 0;
gets(text);
while (text[length] != '\0')
length++;
printf("%d",length);
}
我试图使用上面的程序计算字符串中的字母数。有效。但是,当我使用scanf()
代替gets()
尝试相同的程序时,它无法正常工作。
答案 0 :(得分:1)
gets(buf)
和scanf("%[^\n]", buf)
是等效的,不得使用,因为他们会在buf
的末尾读取输入。
使用fgets(buf, sizeof buf, stdin)
并调整代码,以便fgets
将'\n'
存储在buf
的末尾(如果在输入流中存在)。