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

#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;

}



名不见经传的小菜鸟
浏览 1154回答 1
1回答

慕用4063026

#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判断写的不够精确,有漏洞啊,才会多出一些字符
打开App,查看更多内容
随时随地看视频慕课网APP