从键盘输入中连接两个字符串

时间:2013-09-29 03:01:04

标签: c

我想从用户的键盘输入中连接两个字符串,这是我尝试过的代码:

char a[50], b[50], aAndB[100];
printf("\na : ");
fgets(a, sizeof(a), stdin);
printf("\nb : ");
fgets(b, sizeof(b), stdin);
snprintf(aAndB, sizeof(aAndB), "%s/%s", a, b);
printf(aAndB);

问题是这两个字符串与“\ n”连接,更清楚,这是输出:

a : text1
b : text2
text1
/text2

但我期待的输出是:

a : text1
b : text2
text1/text2

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

你可以通过在snprintf()行之前添加它来设置删除字符串a中的换行符。

a[strlen(a)-1] = '\0';

答案 1 :(得分:0)

是的,fgets将读取回车,您可以改为使用scanf,或者手动将最后一个字符更改为0,例如: 一个[strlen的(A)] = '\ 0';