最大的区别就是C风格的字符串是静态的,不可以动态变化,使用极为麻烦。
而C++的std::string类型动态管理,非常方便。
C风格字符串和char数组是不一样的,看下面两种定义:
char carr1 = {'a', 'b', 'c'};
char carr2 = {'a', 'b', 'c', '\0'};
看上面,carr2可以说成是C风格字符串,carr1就不是C风格字符串,C风格字符串必须要以'\0'结尾的。
string类是标准库的类,并不是内置类型,标准库就像是我们自己定义的类差不多的,string类型对象没有标配'\0'结尾的。如果需要用string类给C风格字符串赋值的话,后面是需要添加'\0'的。