为了账号安全,请及时绑定邮箱和手机立即绑定

帮我看看为什么后面多了一个 I am 自己做完自己看不懂了羞愧。。。我配图了

帮我看看为什么后面多了一个 I am 自己做完自己看不懂了羞愧。。。我配图了

C
名不见经传的小菜鸟 2017-12-09 12:43:52
#include<stdio.h> int main(){ char str1[30]={"I am "}; char str2[20]={"good student"}; int i,j; for(i=0,j=0;i<30;i++) { if(str1[i]==0) { str1[i]=str2[j]; j++; // if(str2[j]==0) // break; } } for(i=0;i<30;i++) printf("%c",str1[i]); printf("\n");    return 0;}
查看完整描述

1 回答

?
慕用4063026

TA贡献195条经验 获得超115个赞

#include<stdio.h> 
int main()
{
char str1[]={"I am "};
char str2[]={"good student"};
int i,j;
for(i=0,j=0;i<(sizeof(*str1)+sizeof(*str2));i++)//这个位置用sizeof求大小
{
if(str1[i]==0)
{
str1[i]=str2[j];
j++;

}

}

for(i=0;i<30;i++)
printf("%c",str1[i]);
printf("\n");
    return 0;
}

输出:I am good student

判断写的不够精确,有漏洞啊,才会多出一些字符

查看完整回答
反对 回复 2017-12-09
  • 1 回答
  • 0 关注
  • 1148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信