码迷,mamicode.com
首页 > 其他好文 > 详细

string = 与strcpy的区别 c_str()

时间:2020-11-12 13:29:34      阅读:6      评论:0      收藏:0      [点我收藏+]

标签:不可   直接   注意   类型   操作方法   pre   不能   拷贝   操作   

在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是把字符串里每个字符一个一个拷贝过去

string = 与strcpy的区别 c_str()

标签:不可   直接   注意   类型   操作方法   pre   不能   拷贝   操作   

原文地址:https://www.cnblogs.com/bcy1998/p/13795397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!