思路:
用一个新的字符数组存组合后的新字符串,先把第一串字符串的前半部分存入新字符串,然后把第二串字符串全部存入,最后存入第一串字符串的后半部分。
#include
#include
#include
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;
}
原文:https://www.cnblogs.com/FantasticDoubleFish/p/14304865.html