C 11字元陣列 字串 數字轉換 字串拼接

2021-10-21 00:19:35 字數 3549 閱讀 5107

二、string轉num

三、char轉num

四、char與string的相互轉換

五、字串拼接

參考文獻

標頭檔案

#include

#include

int num =

123;

string num2str =

to_string

(num)

;cout <<

typeid

(to_string

(num)

==typeid

(string)

<< endl;

// true

標頭檔案

#include

double num =

123.56

;// float同理

stringstream sstream;

sstream << num;

string num2str = sstream.

str();

// num2str = "123.56"

cout <<

typeid

(sstream.

str()==

typeid

(string)

<< endl;

// true

sstream.

clear()

;// 若在用乙個流中處理大量資料,則需手動清除快取,小資料或不同流可忽略

缺點處理大量資料轉換速度較慢stringstream不會主動釋放記憶體,如果要在程式中用同乙個流,需要適時地清除一下快取,用stream.clear()

string str =

"456.78"

;double num;

// float同理,int需要str為整數,否則報錯

stringstream sstream

(str)

;sstream >> num;

// num = 456.78

cout <<

typeid

(num ==

typeid

(double

)<< endl;

// true

標頭檔案

#include

string str =

"456.78"

;double num =

stod

(str)

;// num = 456.78

cout <<

typeid

(num ==

typeid

(double

)<< endl;

// true

下面給出常用的轉換方法,完整轉換方法請見《c++中的字串(string)和數值轉換》

轉換數字的型別

預設完整引數

功能全參例子

intstoi(s)stoi(s,p,b)

把字串s從p開始轉換成b進製的int

stoi(s, 0, 10)

floatstof(s)stof(s,p)

把字串s從p開始轉換成float

doublestod(s)stod(s,p)

把字串s從p開始轉換成double

long

stol(s)

stol(s,p,b)

把字串s從p開始轉換成b進製的long

stol(s, 0, 10)

標頭檔案

#include

char ch[

100]

="-456.78"

;// 注:atof(ch)只返回double數字,因此需要float可以自行轉換成float

double num =

atof

(ch)

;// num = -456.78

cout <<

typeid

(num ==

typeid

(double

)<< endl;

// true

下面給出常用的轉換方法,完整轉換方法請見《c++中的字串(string)和數值轉換》

轉換數字的型別

預設功能

intatoi(s)將字串s[n]轉換為整型值

doubleatof(s)將字串s[n]轉換為double

long

atol(s)將字串s[n]轉換為long

char ch[

100]

="hellow world"

;string str = ch;

// str = "hellow world"

cout <<

typeid

(str ==

typeid

(string)

<< endl;

// true

string str =

"hellow world"

;char ch[

100]=;

for(

int i=

0;i < str.

length()

;i++

) ch[i]

= str[i]

;cout << ch << endl;

// ch = "hellow world"

string str1 =

"aaa"

;strint str2 =

"bbb"

;cout << str1 + str2 << endl;

// "aaabbb"

cout << str1 +

"bbb"

<< endl;

// "aaabbb"

string str1 =

"aaa"

;char

* str2 =

"bbb"

;cout << str1 + str2 << endl;

// "aaabbb"

持續積累中~

[1] c++ 字串與字元陣列詳解

[2] c++中的字串(string)和數值轉換

C 11 字串字面值

標準c 提供了兩種字串字面值。第一種,包含有雙引號,產生以空字元結尾的const char陣列。第二種有著前標l,產生以空字元結尾的const wchar t陣列,其中wchar t代表寬字元。對於unicode編碼的支援尚付闕如。為了加強c 編譯器對unicode的支援,類別char的定義被修改為...

1134 字串轉換

time limit 1 sec memory limit 128 mb submit 3030 solved 1610 submit status web board 輸入乙個以回車結束的字串,它由數字和字母組成,請過濾掉所有非數字字元,然後將數字字串轉換成十進位制整數後乘以2輸出。輸入乙個以回車...

1134 字串轉換

1134 字串轉換 時間限制 1 sec 記憶體限制 128 mb 提交 6095 解決 3688 狀態 討論版 提交 命題人 admin 題目描述 輸入乙個以回車結束的字串,它由數字和字母組成,請過濾掉所有非數字字元,然後將數字字串轉換成十進位制整數後乘以2輸出。輸入輸入乙個以回車結束的字串,長度...