在线等答案!!!!为什么这个程序运行后最后会出现乱码????、、、求大虾指点迷津...........。。。。

#include<stdio.h>#include<string.h>intmain(){chars1[20],s2[10];inti,len;printf("请输入不超... #include <stdio.h>
#include <string.h>
int main()
{
char s1[20],s2[10];
int i,len;
printf("请输入不超过十位的字符串:");
gets(s1);
printf("请再次输入不超过十位的字符串");
gets(s2);
for(i=0;s1[i]!='\0';i++);
len=i;
for(i=0;s2[i]!='\0';i++)
s1[i+len]=s2[i];
printf("%20s\n",s1);
return 0;
}
展开
 我来答
zhongzunru
2011-04-28 · TA获得超过499个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:225万
展开全部
#include <stdio.h>
#include <string.h>
int main()
{
char s1[20],s2[10];
int i,len1,len2;
printf("请输入不超过十位的字符串:");
gets(s1);
printf("请再次输入不超过十位的字符串");
gets(s2);
for(i=0;s1[i]!='\0';i++);
len1=i;
for(i=0;s2[i]!='\0';i++);
len2=i;
for(i=0;s2[i]!='\0';i++)
s1[i+len1]=s2[i];
s1[len1+len2] = '\0'; //加上结束符
printf("%s\n",s1);
return 0;
}
这样就好了,
Jseven_jy
2011-04-28 · TA获得超过8122个赞
知道大有可为答主
回答量:2499
采纳率:100%
帮助的人:1135万
展开全部
for(i=0;s1[i]!='\0';i++);
len=i;
for(i=0;s2[i]!='\0';i++)
s1[i+len]=s2[i];
在这个后面加一个
s1[i+len]='\0';

我试过了。。。加了之后应该是没有问题的。。。

因为字符串遇到\0结束。。。。如果不加。。。后面就会些乱码出去了。。。
在后面加上表示字符串的结束。。。

希望能帮到你。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沈小安1234
2011-04-28
知道答主
回答量:34
采纳率:0%
帮助的人:12.4万
展开全部
程序有问题,你是要分别输出两次的字符串吗 ?还是什么?问题说清楚
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wdmloveyw
2011-04-28 · TA获得超过3005个赞
知道小有建树答主
回答量:1936
采纳率:0%
帮助的人:486万
展开全部
先初始化s1[20],s2[10];
追问
怎么初始化?你改一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式