#include<iostream.h>#include <string.h>void main (void){char str1[20] = "I am a";char str2[20] = "boy";strcpy(str1,str2);cout<<str1;}
3 回答
烙印99
TA贡献1829条经验 获得超13个赞
字符数组都有个隐藏的字符‘\0’,所以str2[20]实际应该是"boy\0",‘\0’是一个数组结束的标志。使用strcpy时,复制过去的是boy\0,所以数组str1的值其实就是boy.因为boy跟着结束标志‘\0’。
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
这样就行了
#include<iostream.h>
#include <string.h>
void main (void)
{char str1[20] = "I am a";
char str2[20] = "boy";
strcat(str1,str2); //////////////改成这句
cout<<str1;
}
aluckdog
TA贡献1847条经验 获得超7个赞
因为strcpy将boy后面的结束符也复制到str1里面了
str1在内存中的存储如下
str1 boy
[0] 98 'b'
[1] 111 'o'
[2] 121 'y'
[3] 0 ''
[4] 32 ' '
[5] 97 'a'
[6] 0''
[7] 0''
...
..
.
- 3 回答
- 0 关注
- 168 浏览
添加回答
举报
0/150
提交
取消