思路:
用一个新的字符数组存组合后的新字符串,先把第一串字符串的前半部分存入新字符串,然后把第二串字符串全部存入,最后存入第一串字符串的后半部分。
#include <stdio.h> #include <iostream> #include <cstring> using namespace std; int main() { int n; scanf("%d",&n); getchar();//取换行符 while(n--) { char s1[51],s2[51],s3[102];//定义三个字符串用于接收输入的字符串以及输出的新字符串 gets(s1); gets(s2); int l1 = (int)strlen(s1); int l2 = (int)strlen(s2); int i; for(i = 0;i < l1 + l2;i++)//遍历新字符串的长度次 { if(i < l1/2) { s3[i] = s1[i];//第一串字符串的前半部分进入新字符串 } else if(i >= l1/2 && i < l1/2+l2) { s3[i] = s2[i-l1/2];//第二串字符串全部进入新字符串 } else { s3[i] = s1[i-l2];//第一串字符串后半部分进入新字符串 } } s3[i] = '\0';//结束新字符串 puts(s3); } return 0; }