c 中char和string相互轉換

2021-09-16 12:29:31 字數 797 閱讀 8234

一、string轉char*。

主要有三種方法可以將str轉換為char*型別,分別是:data(); c_str(); copy();

1.data()方法,如:

string str = 「hello」

const char * p = str.data();//加const

或者用 char *p=(char *)str.data();的形式

同時有一點需要說明,這裡在devc++中編譯需要新增const,否則會報錯invalid conversion from const char to char ,這裡可以再前面加上const或者在等號後面給強制轉化成char的型別。

2.c_str()方法,如:

string str=「world」;

const char *p = str.c_str();//同上,要加const或者等號右邊用char

3.copy()方法,如:

tring str=「hmmm」;

char p[50];

str.copy(p, 5, 0);//這裡5代表複製幾個字元,0代表複製的位置,

*(p+5)=『\0』;//注意手動加結束符!!!

二、char * 轉string。

可以直接賦值。

string s;

char *p = 「hello」;//直接賦值

s= p;

這裡有一點要說明,當宣告了string型別變數s後,用printf("%s",s);是會出錯的,因為「%s」要求後面的物件的首位址。但是string不是這樣的乙個型別。所以肯定出錯。

string型別和char型別相互轉換

概念 string string可以被看成是以字元為元素的一種容器。具有一些成員函式比如begin end 迭代器可以根據他們進行定位,length 函式獲取長度。與char型別不同,string 不一定使用null 0 結束,不能將string直接賦值給char char char 是乙個指標,可...

C中的char 和C 中的string

寫了這樣一段 編譯會報錯,錯誤提示如下 原因 混用c語言和c 的語法 printf,scanf,fprinf等可以格式化輸入輸出乙個字串中使用 s 時,只能使用c string 如果是c string的話,就必須先變成c string。要將c string轉化成 c string的方法 str.c ...

char 與 string物件相互轉換

string 是c 標準庫裡面其中乙個,封裝了對字串的操作 1 把string轉換為char 有3中方法 1.const char data const 返回乙個非null終止的c字元陣列 如 string str abc char p char str.data 2.const char c st...