在录入字符串时结尾会带上一个回车符,且这个回车符会存在缓冲区中,导致第二个字符串的第一个位置存放的是回车符。您可以使用strcspn函数来删除字符串末尾的回车符。
修改代码如下:c#include <stdio.h>#include <string.h>#define MAX 1024int main() { char str1[MAX]; char str2[MAX]; char [i]st1 = str1, [/i]st2 = str2; int length = 0; printf("请输入第一个字符串:"); fgets(str1, MAX, stdin); printf("请输入第二个字符串:"); fgets(str2, MAX, stdin); // 移除str1末尾的回车符 str1[strcspn(str1, "\n")] = '\0'; // 连接str2到str1后面 strcat(str1, str2); printf("----现在str1的内容是:%s\n", str1); return 0;}
这样,通过使用strcspn函数将字符串末尾的回车符替换为 null 字符,就能够实现删除回车符的效果。然后使用strcat函数将str2连接到str1的末尾。 |