字符串构造通过执行
获得数据空间new char[strlen(cp)+1];
由于字符串中只有strlen(cp)
个字符,所以?
答案 0 :(得分:22)
表示字符串结尾的special '\0'
字符。
(请记住, C风格的字符串是以null结尾的数组)。
其他有用的说明:
strlen
不计算'\0'
(这就是为什么你需要这个额外的字节)。 strcpy
复制'\0'
。 char str[7] = "String";
- 自行添加'\0'
。char str[] = {'S','t','r','i','n','g'}
- 不添加'\0'
。char str[7] = {'S','t','r','i','n','g'}
- 将添加'\0'
。答案 1 :(得分:2)
在基于C的字符串中,字符串'\0'
末尾始终有一个特殊字符,它还需要一个额外的字节。这就是为什么我们需要一个额外的字符,我们需要strlen(str)+1
数组来存储字符串。