算法笔记练习 3.6 字符串处理 问题 A: 字符串连接
题目
题目描述
不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来。
输入
每一行包括两个字符串,长度不超过100。
输出
可能有多组测试数据,对于每组数据,
不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来。
输出连接后的字符串。
样例输入
abc def
样例输出
abcdef
思路
用两个字符数组 in1,in2 分别接收两个字符串,把 in2 连接到 in1 后面。
细节:
- in1 需要两倍长度;
- 连接完成后主动在最后加
'\0'
。
代码
#include <stdio.h>
#define MAX 110
int main(){
char in1[MAX*2], in2[MAX]; // 把in2连接到in1后面,in1需要两倍长度
char *p, *q;
while (scanf("%s", in1) != EOF){
scanf("%s", in2);
p = in1;
q = in2;
while (*p)
++p;
while (*q){
*p = *q;
++p;
++q;
}
*p = '\0'; // 注意自己加上\0,以便输出
puts(in1);
}
return 0;
}