我正在编写一个程序,我想扫描一个单词并将其保存在一个字符数组中。如何使用getchar()从用户输入到数组的单词扫描。感谢。
答案 0 :(得分:0)
扫描"字"通常涉及5个步骤:
(可选)扫描并抛弃所有前导空格。
扫描并保存一些有限数量的非空白区域。
继续,直到遇到EOF
或空白字符 - 将最后一个字符放回去。
将'\0'
附加到"字"。
报告结果。
// Return count of `char` saved into word. -1 on EOF.
int JG_ReadWord(char *buffer, int size) {
int ch;
while (isspace(ch = getchar());
int len;
for (len=0; len < size-1 && ch != EOF && !isspace(ch); len++) {
buffer[len] = ch;
ch = getchar();
}
buffer[len] = '\0';
unget(ch, stdin);
if (len == 0 && ch == EOF) return -1;
return len;
}
这类似于
char buffer[80];
// retval = 1 (word of length > 0), or EOF.
int retval = scanf("%79s", buffer);