从char输入连接字符串

时间:2017-10-28 14:42:33

标签: c string initialization eof c-strings

我想从char输入中连接strings

我希望用户在char EOF之前按char键入char,然后我想pring 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;
}

1 个答案:

答案 0 :(得分:4)

这里有两个问题:

  • getchar()返回int。因此c也应为int,否则可能无法存储EOF

  • 在第一次迭代中,代码尝试连接到未初始化的str。这样做会调用未定义的行为。