C++ char[] 与 string 转换

174 阅读1分钟

处理档案资料,最常使用 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变数。

\