【发布时间】:2020-05-23 17:49:30
【问题描述】:
首先,我必须提到,我只是作为初学者学习 C 中的字符串。 我想要做的是从用户那里获取 2 个字符串作为输入并将它们连接起来。所以这就是我所做的:
char firststring[40], secondstring[40];
printf ("Enter first string: ");
fgets (firststring, 40, stdin);
printf ("Enter second string: ");
fgets (secondstring, 40, stdin);
strcat(firststring, secondstring);
printf("%s", firststring);
问题在于,当用户输入第一个字符串时,fgets 也会读取换行符,因此输出如下所示:
Hello
World
我尝试使用puts 代替 fgets 并且效果很好,但是太多人说不要使用该功能。然后我发现我可以在第一个fgets 之后使用strcspn 来删除换行符,但这并没有给我想要的单词之间的一个空格。
所需输出:Hello World
我得到了什么:HelloWorld
有什么建议吗?
【问题讨论】:
-
啊。知道了。太感谢了。我不太明白 strcspn 是如何工作的,所以我想不出那样使用它。
标签: c concatenation newline fgets c-strings