string = 与strcpy的区别 c_str()

在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。 

1.c_str是一个内容为字符串指向字符数组的临时指针; 
2.c_str返回的是一个可读不可改的常指针;

注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针

    char  s1[20]="12345";//要用char 而不能用string
    string s2="54321";
    string s=s1+s2;
    strcpy(s1,s2.c_str());
    cout<<s1<<endl;
    strcat(s1,"a");
    cout<<s1<<endl;
    cout<<s2.c_str()<<endl;
    return 0;

直接赋值是将两个char*指向的位置变成一样的,两个char*实际将表示一个字符串
而拷贝的结果是两个char*指向两个同样的字符串

字符串拷贝用strcpy,字符用=就可以了,因为=拷贝字符串时候只会拷贝首地址(第一个字符),而strcpy是把字符串里每个字符一个一个拷贝过去

posted @ 2020-10-10 21:33  雪雪碧碧  阅读(217)  评论(0)    收藏  举报