首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为什么要加一?解决方法

2012-02-06 
为什么要加一?String& String::operator( const char *sobj ){// sobj 是个空指针if ( ! sobj ) {_size

为什么要加一?
String& String::operator=( const char *sobj )
{
// sobj 是个空指针
if ( ! sobj ) {
_size = 0;
delete[] _string;
_string = 0;
}
else {
_size = strlen( sobj );
delete[] _string;
_string = new char[ _size + 1 ];
strcpy( _string, sobj );
}
return *this;
}


为什么这一行_string = new char[ _size + 1 ]; 的_size 要加 1。

[解决办法]
通常会在字符串末尾加一个'\0'
[解决办法]
为了存放字符串结尾的'\0'
[解决办法]
为了存放字符串结尾的 '\0 '
-------------------------

因为字符串后面结尾都有一个\0 表示字符串结束了 , 自动添加的,
[解决办法]
因为strlen也是以'\0'为结束标识跳出. 应该是C风格字符串所有.

热点排行