c string互換char總結

2021-08-13 10:05:19 字數 2149 閱讀 4333

string有2個函式可以用來轉換。

c_str()

data()

這倆個函式返回的都是const char*

轉換成char*,需要使用strcpy函式。

直接賦值

直接賦值。

這樣輸出時只能使用std::cout來執行吧。

可以直接賦值。但是也會出現上面的問題。需要同樣的處理。

不可直接賦值,單個取出,賦給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支援的,所以在這方面很強大附一張結果圖

//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不一定以null(或'\0')結束

所以,不能將string直接賦值給char 。

string長度通過length()得到通過下標訪問string組成的每個字元元素。當然最簡單化的時使用

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...