C++:string并非以0作为结束符,c_str和data的返回却包含结束符0

C语言中使用char数组保存字符串时,是以字符为0或者'\0'作为字符串的结束符标志的。

所以一个char str[10]的数组只能合法的保存9个字符(因为最后还要加一个结束符)。

#include 
#include 
 
using namespace std;
 
int main()
{
    char str[10] ="123456789";
    int len = strlen(str);
    cout<

运行程序输出:

123456789 len:9

C++使用了string对象来保存字符串,string对象并不需要通过这个额外的'\0'作为结束字符

#include 
#include 
 
using namespace std;
 
int main()
{
    string str ="123456789";
    cout<<"str:"<

你可能感兴趣的:(C/C++,c++)