string有2個函式可以用來轉換。
c_str()
data()
這倆個函式返回的都是const char*
轉換成char*
,需要使用strcpy函式。
直接賦值
直接賦值。
這樣輸出時只能使用std::cout
來執行吧。
可以直接賦值。但是也會出現上面的問題。需要同樣的處理。
不可直接賦值,單個取出,賦給char
附全部**:
string本身就是由char支援的,所以在這方面很強大附一張結果圖string str1 = "";
char ch1 = 'a', ch2 = "hello", *ch3 = "hello";
const
char ch4 = 'a', *ch5 = "hello";
//char 轉 string
str1 = ch1;
cout
<< str1 << endl;
//char 轉 string
str1 = ch2;
cout
<< str1 << endl;
//char* 轉 string
str1 = ch3;
cout
<< str1 << endl;
//const char 轉 string
str1 = ch4;
cout
<< str1 << endl;
//const char* 轉 string
str1 = ch5;
cout
<< str1 << endl;
//string 轉 char
ch1 = str2[0];
//string 轉 char
for (unsigned i = 0; i < str2.length(); i++)
//string 轉 char*
strcpy(ch3, str2.data());
cout
<< ch3 << endl;
//string 轉 const char --需要初始化
const
char ch = *str2.c_str();
//string 轉 const char*
ch5 = str2.c_str();
可以使用如 begin()、end(),迭代器等等
string不一定以string長度通過length()得到通過下標訪問string組成的每個字元元素。當然最簡單化的時使用null(或'\0')
結束所以,不能將string直接賦值給char 。
stringstream使用時必須包含
#include
Unicode下CString與char 轉換
在visual c net2005中,預設的字符集形式是unicode,但在vc6.0等工程中,預設的字符集形式是多位元組字符集 mbcs multi byte character set 這樣導致在vc6.0中非常簡單實用的各類字元操作和函式在vs2005環境下執行時會報各種各樣的錯誤,這裡總結了...
CString 和 char 的轉換
cstring 是一種很特殊的 c 物件,它裡面包含了三個值 乙個指向某個資料緩衝區的指標 乙個是該緩衝中有效的字元記數 它是不可訪問的,是位於 cstring 位址之下的乙個隱藏區域 以及乙個緩衝區長度。有效字元數的大小可以是從0到該緩衝最大長度值減1之間的任何數 因為字串結尾有乙個null字元 ...
Unicode下CString與char 轉換
unicode下cstring與char 轉換 在visual c net2005中,預設的字符集形式是unicode,但在vc6.0等工程中,預設的字符集形式是多位元組字符集 mbcs multi byte character set 這樣導致在vc6.0中非常簡單實用的各類字元操作和函式在vs2...