从字符输入连接字符串
我想从字符输入连接strings
。从字符输入连接字符串
我想用户将按字符键入char,直到EOF
然后我想要编写我的string
。
所以目前如果键入char
为exapmle“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;
}
两个问题在这里:
getchar()
返回int
。所以c
也应该是int
,否则它可能无法存储EOF
。在第一次迭代中,代码试图连接到未初始化的
str
。这样做会调用未定义的行为。
所以我需要在这里改变? (在char c到int c之间) – user979033
@ user979033:“* ... to'str'这是未初始化的。*” – alk
我可以请代码示例吗? – user979033
'EOF'不是字符。 'getchar'返回int是有原因的。 – melpomene
如果它检测到换行符“\ n”和“EOF”,代码将更加用户友好。你应该建立一个''\ 0''终止的字符串传递给'strncat'。 –