在使用C++處理字串時,時常會char[]和string互轉,來符合接下來要使用的函式中參數的型態,假如可以互轉自如,那麼處理起檔案資料會更簡單便利喔!
我測試的程式碼如下:
/**
Theme: string & char[] transform
Compiler: Dev C++ 4.9.9.2
Date: 100/05/01
Author: ShengWen
Blog: http://cg2010studio.wordpress.com/
*/
#include<iostream>
using namespace std ;
int main(){
string test_string="test_string";
char test_char[]="test_char", result_char[20];
string result_string1(test_char);
string result_string2;
result_string2.assign(test_char);
strcpy(result_char, test_string.c_str ());
cout<<"test_string: "<<test_string<<endl;
cout<<"test_char: "<<test_char<<endl;
cout<<"result_string1: "<<result_string1<<endl;
cout<<" result_string2: "<<result_string2<<endl;
cout<<"result_char: "<<result_char<<endl;
system("pause");
return EXIT_SUCCESS;
}
程式結果爲:
test_string: test_string
test_char: test_char
result_string1: test_char
result_string2: test_char
result_char: test_string
請按任意鍵繼續. . .
可見到string轉char[]相當簡單,只要呼叫string
class的成員函式c_str(),即可將string轉爲char[]。
那麼char[]轉string呢?有兩種方法,第一種是初始string變數時,即把char[]當作參數來初始化,第二種則是使用string
class的成員函式assign(char[])來將char[]指定爲string變數。