处理档案资料,最常使用
char[]
或
string
来储存字串,前者是
字元阵列
,为C所拥有,当然C++也可以使用;而后者是C++独有的
字串类别
,可以产生字串物件。
在使用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变数。