美文网首页
sizeof(cha[])和strlen(cha[]),以及st

sizeof(cha[])和strlen(cha[]),以及st

作者: 狗嗨旺 | 来源:发表于2019-08-26 11:28 被阅读0次
    #include <iostream>
    using namespace std;
    
    int main(){
        char cha[] = "wang";
        cout<<strlen(cha)<<endl;
        cout<<sizeof(cha)<<endl;
    }
    

    输出:

    4
    5
    

    strlen不计算'\0' ,sizeof计算'\0'

    cha存储的数据

    定义char数组的方式:

    1. char cha[]="wang";
    2. 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
    

    相关文章

      网友评论

          本文标题:sizeof(cha[])和strlen(cha[]),以及st

          本文链接:https://www.haomeiwen.com/subject/kchrectx.html