c怎麼把string轉換為char型陣列

2021-09-02 07:15:44 字數 2803 閱讀 6544

1樓:冰凍了你呢

將string型別轉換為字元陣列char

char buf[10];

string str("abcdefg");

length = str.copy(buf, 9);

buf[length] = '\0';

或者char buf[10];

string str("abcdefg");

strcpy(buf, str.c_str());//strncpy(buf, str.c_str(), 10);

字元陣列轉化成string型別

char ch  = "abcdefg";

string str(ch);//也可string str = ch;

或者char ch  = "abcdefg";

string str;

str = ch;//在原有基礎上新增可以用str += ch;

c_str函式的返回值是const char*的,不能直接賦值給char*,

所以就需要我們進行相應的操作轉化,下面就是這一轉化過程。

c++語言提供了兩種字串實現,其中較原始的一種只是字串的c語言實現。

與c語言的其他部分一樣,它在c+的所有實現中可用,

我們將這種實現提供的字串物件,歸為c-串,每個c-串char*型別的。

標準標頭檔案包含操作c-串的函式庫。

這些庫函式表達了我們希望使用的幾乎每種字串操作。

當呼叫庫函式,客戶程式提供的是string型別引數,

而庫函式內部實現用的是c-串,因此需要將string物件,

轉化為char*物件,而c_str()提供了這樣一種方法,

它返回一個客戶程式可讀不可改的指向字元陣列的指標。

例:#include

#include

using std::string;void main()

string add_to="hello!";

//std::cout

const char*cfirst = add_to.c_str();

const char*csecond = add_on.c_str();

char*copy = new char[strlen(cfirst) + strlen(csecond) + 1];

strcpy( copy, cfirst);

strcat( copy, csecond);

add_to = copy;

delete copy;

2樓:風若遠去何人留

#include

#include

#include

using namespace std;

int main()

3樓:戴奇

#include

using namespace std;

int main()

{string s="sdjsd";

char a[100];

for(int i=0;i

執行結果:

c++如何將string 轉換為char*

4樓:匿名使用者

char* p=new char[a.size()];

strcpy(p,a.data());

delete p;

不能通過a.data()和a.c_str()返回的指標修改string的內容,但像上面拷貝一份內容就可以

5樓:好程式設計師

你可以將char型別變數宣告為一個陣列,如b:array[0..100] of char,這相干b中就可以儲存多個字元了,其轉換如下例:

var a:string; b:array[0..

100] of char;char 是字元型別,string 是字串型別,也就是說,char型別的值只有一個字元,而string型別的值卻可以有多個字元(其容量好象為2g)。將char轉換為string時,直接應用a:=b即可(a為string型別,b為char型別),但結**可想而知,string型別變數a的值只是一個字元。

begin …… a:=b; //將char陣列轉換為string strpcopy(b,a); //將string轉換為char ……end;也就是說,將string型別的變數賦值給char型別的變數時,不克不及直接賦值,必須用strpcopy函式,而將char型別的變數賦值給string型別的變數時可以直接賦值。

6樓:匿名使用者

1.直接在構造string時建立。

char data = ;

string str = new string(data);

2.string有方法可以直接轉換。

string.valueof(char chr)就可以。

如: char cha = ;

string n = string.valueof(cha);

public class test}

7樓:匿名使用者

1、const char *p = a.data();

2、const char *p = a.c_str();

3、char *p = const_cast(a.c_str());

8樓:篤俠

a.c_str()就是char*型別了。

9樓:好名字可以讓你的朋友更容易記住你呦

好像沒有轉換成char* 啊,我試了一下 不給力啊

c 中,如何把long轉換成string

使用baistringstream會方便du一點。zhi include include include using namespace std int main stringstream是好方法。不過c 裡包含iostream頭就行了,這裡stdio.h沒用 用庫函式 atol include i...

c裡面十六進位制怎麼轉換為字元

printf 數字代表來 的字源母是 c n num 直接列印 include int main void 測試通過。請問c 程式設計裡用字串讀進一個16進位制數後,怎樣轉化為10進位制數?include include include using namespace std int main el...

C窗體程式裡面怎麼把string型別強制轉換為int型別的

直接把字串和整數相加了,得到的結果仍是字串,要先把label中的字串轉為整數再與1相加得3,過程如下 初始化label值得 label1.text 1.2 int ivalue 0 能正常轉為整數 if int32.tryparse label1.text.trim out ivalue 不能正常轉...