string = 与strcpy的区别 c_str()
Posted bcy1998
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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是把字符串里每个字符一个一个拷贝过去
以上是关于string = 与strcpy的区别 c_str()的主要内容,如果未能解决你的问题,请参考以下文章