【发布时间】:2017-10-28 14:42:33
【问题描述】:
我想从字符输入连接strings。
我希望用户逐个字符地键入直到EOF,然后我想发送我的string。
所以目前,如果我输入 char 为例如 'r' 点击 enter 并按 Control + D(我正在使用 ubuntu)这就是我在屏幕上看到的:
r
r
�
这是我的程序:
#include <stdio.h>
#include <string.h>
int main()
{
char c = 0;
char str[127] = {'\0'};
while (c != EOF)
{
c = getchar();
strncat(str, &c, 1);
}
printf("%s\n", str);
return 1;
}
【问题讨论】:
-
EOF不是字符。getchar返回 int 是有原因的。 -
如果检测到换行符
'\n'和EOF,代码会更加用户友好。您应该构建一个以'\0'结尾的字符串以传递给strncat。
标签: c string initialization eof c-strings