String 与 char* 相互转换
轉(zhuǎn)載至:https://blog.csdn.net/qq_18410319/article/details/90487796
一、string->char*
1、將string轉(zhuǎn)char*,可以使用string提供的c_str()或者data()函數(shù)。其中c_str()函數(shù)返回一個(gè)以'\0'結(jié)尾的字符數(shù)組,而data()僅返回字符串內(nèi)容,而不含有結(jié)束符'\0'。
2、const char* c_str();
c_str()函數(shù)返回一個(gè)指向C字符串的指針,該指針指向內(nèi)存內(nèi)容和string 相同。因?yàn)閏語言不支持string類型,故為了在c++兼容C字符串,提供了c_str()函數(shù)來實(shí)現(xiàn)轉(zhuǎn)換。注意一定要使用strcpy()函數(shù)來操作c_str();c_str()返回的是一個(gè)臨時(shí)指針,不能對(duì)其進(jìn)行操作。
下面開始:string 轉(zhuǎn) char*
char ch[20];
?
string s="123456";
?
strcpy(ch,s.c_str());
c_str()以char* 形式傳回string內(nèi)含字符串
如果一個(gè)函數(shù)要求char*參數(shù),可以使用c_str()方法:
string str="123456";
?
printf("%s",str.c_str());
/
?
const char* p=a.data();
?
const char* p=a.c_str();
?
char* p=const_cast<char*>(a_str());
?
2.char* 轉(zhuǎn) string
string s;
?
char* p ="hello";
?
s = p;
?
3.string轉(zhuǎn)char[]
? string pp = "dagah";
? char p[8];
? int i;
? for( i=0;i<pp.length();i++)
? ? p[i] = pp[i];
? p[i] = '\0';
? printf("%s\n",p);
? cout<<p;
4.char[] 轉(zhuǎn)string
直接賦值
?
總結(jié)
以上是生活随笔為你收集整理的String 与 char* 相互转换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 组件化之路 - ViewBinding基
- 下一篇: 济南大学 计算机学院,于自强