九度题目1471:合并符串 给定两个字符串S1和S2,合并成一个新的字符串S。

给定两个字符串S1和S2,合并成一个新的字符串S。合并规则为,S1的第一个字符为S的第一个字符,将S2的最后一个字符作为S的第二个字符;将S1的第二个字符作为S的第三个字... 给定两个字符串S1和S2,合并成一个新的字符串S。
合并规则为,S1的第一个字符为S的第一个字符,将S2的最后一个字符作为S的第二个字符;
将S1的第二个字符作为S的第三个字符,将S2的倒数第二个字符作为S的第四个字符,以此类推。
输入:
包含多组测试数据,每组测试数据包含两行,代表长度相等的两个字符串S1和S2(仅由小写字母组成,长度不超过100)。
输出:
合并后的新字符串S
样例输入:
abc
def
样例输出:
afbecd

我的代码:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
int main()
{
char s1[100]={0},s2[100]={0},s3[200]={0};
int len,i,j=0;
while(scanf("%s %s",s1,s2)!=EOF){
//printf("%s %s",s1,s2);
len=strlen(s1);
//printf("%d",len);
for(i=0;i<len;i++){
s3[j]=s1[i];
s3[j+1]=s2[len-1-i];
j=j+2;
}
printf("%s\n",s3);
}
return 0;
}
题目很简单,可为什么运行时九度上一直显示RUNTIME ERROR。求解惑 蟹蟹^^
展开
 我来答
White_MouseYBZ
2016-06-30 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6715万
展开全部
  1. 增设一个int型变量le2记录s2的长度;

  2. 在for(i=0;i<len;i++){...这一句前加一句le2=strlen(s2)-1;确定s2最后一个字符的下标;

  3. 将for(i=0;i<len;i++){...改为for(j=i=0;i<len;i++){...以使多次测试时使j归0;

  4. 将s3[j+1]=s2[len-1-i];这一句改为s3[j+1]=s2[le2--];;

  5. 在printf("%s\n",s3);前加一句s3[j]='\0';以使s3有确定的结束符。

这样我想就OK了。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式