strcpy()老掉牙的面试题

nullah 2008-11-13 05:55:57

char a[10];
char b[10];

for(int i=0; i<10; i++)
{
b[i] = 'a';
}
strcpy(a,b);

字符数组str1不能在数组内结束 什么原因
...全文
92 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq675927952 2008-11-13
  • 打赏
  • 举报
回复
up
GJchina 2008-11-13
  • 打赏
  • 举报
回复
没有串结束符'\0'.strcpy要找到结束符才知道字符串结束了。如果你用char *a = "aaa",那么就自动加上串结束符了。
jackzhhuang 2008-11-13
  • 打赏
  • 举报
回复
楼上各位说得对。


BT输出字符串方法:

for (int i = 0; i < 10; ++i)
{
std::cout << a[i];
}

这样输出a就可以省掉最后那个'\0'了,不过我想你不会愿意的。
chenzhp 2008-11-13
  • 打赏
  • 举报
回复
'\0'
太乙 2008-11-13
  • 打赏
  • 举报
回复
    char a[10];
char b[10];

for(int i=0; i<9; i++)
{
b[i] = 'a';
}
b[i]='\0';
strcpy(a,b);
帅得不敢出门 2008-11-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lzr4304061988012 的回复:]
没有以'\0'结尾.
[/Quote]
嗯 这个看看 strcpy的源码实现就明白了.
yh4130a 2008-11-13
  • 打赏
  • 举报
回复
字符数组的最后一位是放结束符的
如果把这位占了 或者说是没有放结束符 那这个字符串就没有结束标志咯
lzr4304061988012 2008-11-13
  • 打赏
  • 举报
回复
没有以'\0'结尾.

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧