1.char [ ]==》string
直接賦值;
2. string==》char [ ]3種方法:
(1)呼叫 string 的 data 函式
【注】:data除了返回字串內容外,不附加結束符'\0'
【注】:const char* 與 char*之間用const_cast轉換符;
#include#includeusing namespace std;
int main()
//可以返回tchar值
(2)呼叫 string 的 c_str 函式【注】:使用string提供的函式c_str() ,返回乙個以『\0』結尾的字元陣列。
推薦使用strcpy函式
#include#includeusing namespace std;
int main()
(3)呼叫 string 的 copy 函式如:string str="hello";
char p[40];
str.copy(p,5,0); //這裡5,代表複製幾個字元,0代表複製的位置
*(p+5)='/0'; //要手動加上結束符
cout
a. string可以被看成是以字元為元素的一種容器, 字元構成序列(字串)。
原因:一般認為是vs準備棄用strcpy的,安全性較低,所以微軟提供了strcpy_s來代替。
然而,strcpy_s並沒有strcpy好用,我們要想繼續在vs2015中使用strcpy該怎麼辦 呢?下面是幾種解決方法
解決方法:
1. 其實在下面的輸出錯誤資訊中有解決方法,「to disable deprecation , use _crt_secure_no_warnings」,意思是我們可以不進行相容性檢查,我們可以在專案-屬性-配置屬性-c/c++-預處理器-預處理定義裡邊加上一句:_crt_secure_no_warnings,如下圖所示
2. 也是在下面的輸出資訊中,我們可以看到有一處錯誤代號「error c4996:」,所以我們可以在程式開頭加上一句
「#pragma warning(disable:4996)」就行,意思是忽略這個錯誤,如下圖
3. 可以在:專案-屬性-配置屬性-c/c++中的常規,裡面有個sdl選項,關了。還有在**生成中有個安全檢查選項(/gs),關了。雖然這種方法也可以解決這個問題,但是我本人不太提倡這種解決辦法,還是前兩種解決方法比較好
1.
2. 3.strcpy函式在vs2015無法使用的問題
string int的相互轉換
1.int 轉 string 標頭檔案 include int x stringstream sd sd x string str sd.str 標頭檔案 include strstream ss int sum 0 string c ss sum ss c 2.string 轉 int int t...
int string char的相互轉換
1 string轉換成int include include includeusing namespace std int main method 2 res atoi s.c str method 3 stringstream 很強大 stringstream ss ss s ss res met...
C int string的相互轉換
c 11標準增加了全域性函式std to string string to string int val string to string long val string to string long long val string to string unsigned val string to ...