std::string 是c++標準庫裡面其中乙個,封裝了對字串的操作
把string轉換為char
* 有3中方法:
1:data
如:
string str = "hello";
char *p = str.data();
2:.c_str
如:
string str = "hello";
char *p = str.c_str();
3: copy
如 :
string str = "hello";
char p[40];
str.copy(p,5,0); //這裡5,代表複製幾個字元,0代表複製的位置
*(p+5)='\0'; //要手動加上結束符
cout < 2:把char* 轉換為 string的方法
char* p = "hello";
std::string str = p; // 可以對str直接賦值
題外話:
當我們定義乙個string型別的變數後,使用printf_s的問題。
std::string str = "hello";
printf_s("%s", str);
這樣的輸出是有問題的,因為%s要求的是後面物件的首位址。但是string不是這樣的型別,所以會出錯。使用
cout << str << endl; 這樣輸出是沒有問題的。
如果真的要使用printf_s(),修改如下:
std::string str = "hello";
printf_s("%s", str.c_str());
std string 與 char 之間的轉換
std string 是c 標準庫裡面其中乙個,封裝了對字串的操作 把string轉換為char 有3中方法 1 data 如 string str hello char p str.data 2 c str 如 string str hello char p str.c str 3 copy 如 ...
如何把std string當char 使用
std string使用很方便,但有時會碰到這樣的問題,比如我們有乙個結構體,內容如下所示 typedef struct datainfo int i unsigned time datainfo datainfo stinfo stinfo.i 10 stinfo.time time null 如...
char 與char 的區別
乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放,存放函式的引數值,區域性變數的值等。其操作方式類似於 資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料 結構中的堆是兩回事,分配方式倒...