日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

String 与 char* 相互转换

發(fā)布時(shí)間:2023/12/16 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 String 与 char* 相互转换 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。