在c语言中,一定会遇到'\0'的问题,字符串的最后有一个\0
strlen +1 = sizeof
c++中也是如此
但是当把字符串赋给变量是就不同了,c语言中一般赋给字符串数组,sizeof 永远是1这个在c++中也一样
在c++中引入了类的概念,可以使用string类
(注:string类 需要 #include<string> 不是string.h .h这个是存放字符串函数的地方strlen就是其中一个,所以使用strlen的时候也要包含它)
std::string str="123";
std::cout<<strlen(str);// error
std::cout<<str.length();//ok
由于str是string的实例,strlen是不能使用的,它有自己所对应的成员函数.
结论:
strlen("123"); /*3*/ sizeof("123");/*4*/
std::string str= "123";
str.length();//3
sizeof(str);//还是3