string char char 之間的轉換

2021-09-23 13:29:12 字數 1181 閱讀 4081

一、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*的型別。

下面解釋下該問題,const char*是不能直接賦值到char*的,這樣編譯都不能通過,理由:假如可以的話,那麼通過char*就可以修改const char指向的內容了,這是不允許的。所以char*要另外開闢新的空間,即上面的形式。

2.c_str()方法,如:

string str=「world」;

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

3.copy()方法,如:

string 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的長度,可以根據length()函式得到,又可以根據下標直接訪問,所以用乙個迴圈就可以賦值了。

string pp = "dagah";

char p[8];

int i;

for( i=0;i四、char轉string

這裡可以直接賦值

博學之,審問之,慎思之,明辨之,篤行之

禮記 中庸 十九章有云 博學之,審問之,慎思之,明辨之,篤行之。這說的是為學的幾個層次,或者說是幾個遞進的階段。博學之 意謂為學首先要廣泛的獵取,培養充沛而旺盛的好奇心。好奇心喪失了,為學的慾望隨之而消亡,博學遂為不可能之事。博 還意味著博大和寬容。惟有博大和寬容,才能相容幷包,使為學具有世界眼光和...

接觸之,熟悉之,打破之

接觸之,熟悉之,打破之 拿破崙小時候就是孩子王,不管同夥伴們玩什麼遊戲,它總是贏家。同時,它更善於改變遊戲規則,以便能夠發揮他自己的優勢。如果能夠成為遊戲規則的左右者,那麼,在當今商戰中必定是最大的贏家。我們處在乙個有著各種各樣遊戲規則的大環境中,每時每刻都要面對不同的遊戲規則,轉換不同的角色,讓自...

手之舞之,足之蹈之

我知道,你認為我在講述天方夜譚。沒有哪個程式設計師可以這樣奢侈,可以這樣幸運。不錯,這確乎是我的幻想。不可求,不可遇。然而,書卻可以擁有這樣的魔力,可以讓這樣的幻想得到實現。感謝richard monson haefel薈萃了這樣乙個團隊,並將他們帶到每乙個讀者身邊,那就是這本薄薄的小書 軟體架構師...