string型別轉換為char

2021-10-17 14:20:56 字數 1154 閱讀 5359

標準庫string類提供了3個成員函式來從乙個string得到c型別的字元陣列,:c_str(),data(),copy(p,n);

1.c_str()是borland封裝的string類中的乙個函式,它返回當前字串的首位址。換種說法,c_str()函式返回乙個指向正規c字串的指標常量,內容與本

string串相同。這是為了與c語言相容,在c語言中沒有string型別,因此必須通過string類物件的成員函式c_str()把string物件轉換成c中的字串樣式。

2.c_str()的原型是:const char*c_str()const;

3,c_str()生成乙個const char*指標,指向空字元終止的陣列,而data()與c_str()類似,但是返回的陣列不以空字元終止。

4.注意:一定要使用strcpy()等函式來操作c_str()返回的指標。

下面的列子就是錯誤的:

char *c;

string str ="122";

c = str.c_str();

上述**會報錯,因為s物件被析構,其類容被處理。

char *cstr,*p;

string str = "1232";

cstr = new char[str.size()+1];

strcpy(cstr,str.c_str());

如果乙個函式要求char*引數,可以使用c_str()方法。

copy(p,n,size_type _off = 0):從string型別物件中至多複製n個字元到字元指標p指向的空間中。預設從首字元開始,但是也可以指定,開始的位置(記住從0開始)。返回真正從物件中複製的字string str ("please split this phrase into tokens");

basic_string :: size_type cc;

char arr[20] = ;

basic_string :: pointer arrayptr = arr;

cc = str.copy(arrayptr,10);

cout << "the number of copied characters in cc is: "<< cc << endl;

cout << "the copied characters array1 is: " <

將char型別轉換為string型別

將char型別轉換為string型別 string的建構函式中有此函式原型 string size t n,char c 因此我們可以直接使用此函式 string s 1,a 建立s並將1個a存入到s中 前面的數字代表多少個 擴充套件將char型別放入到vector容器中 第一種就是 vectorv...

c string型別轉換為char 型別

string 是c 標準庫裡面其中乙個,封裝了對字串的操作 把string轉換為char 有3中方法 1。data 如 string str abc char p str.data 2.c str 如 string str gdfd char p str.c str 3 copy 比如 string...

C 中將char陣列轉換為string

假設c字串定義為char ch hello world 1.向建構函式傳入c字串建立string物件 string str ch 2.使用拷貝建構函式建立string物件 string str ch 3.對已有的string物件呼叫string類內部定義的賦值運算子 string str str c...