在VC++字符串的复制中,为什么复制的数组结尾要加一个结束符号?

大哥们哪位知道,在VC++字符串的复制中,为什么复制的数组结尾要加一个结束符号?
最新回答
毒药

2024-04-23 04:05:35

因为判断一个字符串的结束的话一定要用一个结束符,如果没有了这个符号就不能确实复制到那里就停止或者这个字符串显示到哪里。

而且用双引号引起来的 "xxx" 已经带了结束符了,所以不用手动加上,而数组里面的则不是这样。
搞妇帅

2024-04-23 07:47:15

在C语言里。最早的字符串string = 以\0结尾的 字符数组
例 如
字符数组 a[]="12345"
实际他占6个字符最后一个字符为'\0'

如果你这时a[1]='\0'
然后。printf("%s", a) 他会输出1

或者转成string 是变成“1”
我心碎你听不见

2024-04-23 02:43:04

zui为了保险起见,也为了规避Bug

如果source的长度小于dest的,那么source也是字符串的情况下一般问题不大,不需要做额外的操作;
但是,如果source较大,dest装不下,那么这个时候的dest可能就不再是string,这样子就与题意不符合了,此时最后面强制用'\0'结束就保证了dest也是string