#include <iostream>
using namespace std;
int main(){
char cha[] = "wang";
cout<<strlen(cha)<<endl;
cout<<sizeof(cha)<<endl;
}
输出:
4
5
strlen不计算'\0' ,sizeof计算'\0'
定义char数组的方式:
char cha[]="wang";
char char[]={'w','a','n','g','\0'}
string和char数组不同,是一个类,不仅存储了字符,还存储了其他字符串相关的信息。
#include <iostream>
using namespace std;
void fun(char* str, int length){
str[0] = 'd';
cout<<"fun:"<<strlen(str)<<endl; //返回字符串的大小
cout<<"fun:"<<sizeof(str)<<endl; //不仅包含字符串本身,还有不知道其他是啥数据。
return;
}
int main(){
string str = "wang";
cout<<str.length()<<endl; //返回字符串的大小,不包括'\0'
cout<<sizeof(str)<<endl; //返回对象str的大小,不仅包含字符串本身,还有其他数据。
cout<<str<<endl;
fun((char*)str.data(), str.length()); //通过(char*)str.data()可以将string转成char*,另外也可以通过str.c_str()转成const char*.
cout<<str<<endl;
return 0;
}
输出:
4
24
wang
fun:4
fun:8
dang