string與char 互相轉換以及周邊問題

2022-04-20 09:52:55 字數 1222 閱讀 2383

先插乙個小知識點

string str = "abc"

str += 'd';

cout<string 轉char* 的時候  string.c_str() 和string.data()的區別

c_str()返回的以'\0'結尾

data()返回的不以'\0'結尾

copy(p,n,size_type_off = 0);  從string型別物件中最多複製n個字元到字元指標p指向的空間中,預設從首字元開始,但是也可以指定開始複製的位置

string的c_str()返回的指標是由string管理的,他的生命週期是string的生命期 例如下面的例子是錯誤的:

char* p;

string a = "123";

p = a.c_str();

cout《另外這個指標始終指向的是string的內容, 如果想讓指標的東西不變的話,只能先strcpy()複製到自己的記憶體中

1

string s = "

123";2

3const

char* a =s.c_str();

4 char* b = strdup(a);

5 cout1236

7 s = "

abc";8

9 coutabccout<

char* 轉string

char* p = "abc";

string s = string(p);

string 和cstring的區別

cstring是atl/mfc共享的 (atl, active template library 活動模板庫, 是一種微軟程式塊,支援利用c++編寫asp**以及其它activex程式)

string 是c++標準庫的

string 轉cstring

cstring a;

a.format("%s", string.c_str());

char* 轉cstring

cstring a;

a.format("%s", char*);

char* 轉int

#include

int atoi(char*);    long atol(char*);   

char陣列與string轉換

1 char陣列轉string 有很多種方法 假設c字串定義為char ch hello world 1.向建構函式傳入c字串建立string物件 string str ch 2.使用拷貝建構函式建立string物件 string str ch 3.對已有的string物件呼叫string類內部定義...

char陣列與string轉換

1 char陣列轉string 有很多種方法 假設c字串定義為char ch hello world 1.向建構函式傳入c字串建立string物件 string str ch 2.使用拷貝建構函式建立string物件 string str ch 3.對已有的string物件呼叫string類內部定義...

Char 與 LPCTSTR 型別的互相轉換

1.char 轉換成 lpctstr char ch 1024 wo shi ni baba int num multibytetowidechar 0,0,ch,1,null,0 wchar t wide new wchar t num multibytetowidechar 0,0,ch,1,w...