前言:
今天開始想要好好補補程式,開始看老早就買了的《演算法入門經典》,發現前面幾章對字串的處理較多,蒐羅了一下別人的部落格,整理到這上面來。
c語言中常用的字串和數字轉換函式是sscanf和sprintf,c++中引入了流的概念,通過流來轉換字串和數字就方便了許多。
sprintf函式原型為 int sprintf(char *str, const char *format, ...)。作用是格式化字串,具體功能如下所示:
(1)將數字變數轉換為字串。
(2)得到整型變數的16進製制和8進製字串。
(3)連線多個字串。
下面貼出**例項:
#include#includeusing namespace std;
int main();
int data=1024;
//將data轉換為字串
sprintf(str,"%d",data);
cout
編輯過程中都忘記了c++結尾要用分號了,傷感……
sscanf函式原型為int sscanf(const char *str, const char *format, ...)。
將引數str的字串根據引數format字串來轉換並格式化資料,轉換後的結果存於對應的引數內。具體功能是從字串中讀取與指定格式相符的資料:
char buf[512];
sscanf("123456","%s",buf);
printf("%s\n",buf);//輸出結果為123456
//取指定長度的字串
sscanf("123456","%4s",buf);
printf("%s\n",buf);//結果為1234
//取到指定字元為止的字串
sscanf("123456 abcdef","%[^ ]",buf);
printf("%s\n",buf);//取遇到空格為止的字串
//取僅包含指定字符集的字串
sscanf("123456abcdefbcdef","%[1-9a-z]",buf);
printf("%s\n",buf);//結果僅包含數字和小寫字母
//取到指定字符集為止的字串,與取到空格為止相似
sscanf("123456abcdefbcdef","%[^a-z]",buf);
printf("%s\n",buf);//取到大寫字母為止
//給定乙個字串iios/12ddwdff@122,獲取 / 和 @ 之間的字串,
//先將 "iios/"過濾掉,再將非'@'的一串內容送到buf中
sscanf("iios/12ddwdff@122","%*[^/]/%[^@]",buf);
printf("%s\n",buf);
//給定乙個字串「「hello, world」,僅保留world。
//(注意:「,」之後有一空格)
sscanf("hello, world","%*s%s",buf);
printf("%s\n",buf);
//%*s表示第乙個匹配到的%s被過濾掉,即hello被過濾了
//如果沒有空格則結果為null
%[ ] 類似於正規表示式,該函式中讀取的字串是預設以空格來分割的,如果不以空格來分割,可以用%,例如:
sscanf("2006:03:18 - 2006:04:18", "%[0-9,:] - %[0-9,:]", sztime1, sztime2);
庫定義了三種類:istringstream、ostringstream和stringstream,
分別用來進行流的輸入、輸出和輸入輸出操作。該類除了處理字串外還可以進行任意型別的轉換。具體看例項**:
templateout_type convert(const in_type&t)
string s="12 34 56 # 788";
stringstream ss;
ss<>s){
//cout
cout<
可見流輸出時也是以空格來分割字串的。
實驗過程中用的codeblocks,vs太大跑起來慢,vc莫名執行不起來,發現codeblocks還可以。
ctrl+shift+c可以快速注釋掉多行
ctrl+shift+x可以刪除注釋。
在這裡做個筆記!
C 中數字與字串的轉換
1 字串數字之間的轉換 1 string char string str ok char p str.c str 2 char string char p ok string str p 3 char cstring char p ok cstring m str p 或者 cstring m st...
c 中數字和字串的轉換
數字轉字串 1.用標頭檔案include中的stringstream 支援浮點數 int main 2.c 11 to string int main 字串轉數字 1.用標頭檔案include中的stringstream 支援浮點數 int main 2.利用中的stoi 函式 int main 注...
字串與數字的轉換(C )
資料多的時候可能有點慢,不過很好用string str 123 int num stringstream ss ss str ss num cout num endl int num 32.123 string str stringstream ss ss num ss str cout ss.st...