C和C 中的字串與數字轉換函式

2021-08-03 17:34:09 字數 2304 閱讀 2908

前言:

今天開始想要好好補補程式,開始看老早就買了的《演算法入門經典》,發現前面幾章對字串的處理較多,蒐羅了一下別人的部落格,整理到這上面來。

c語言中常用的字串和數字轉換函式是sscanfsprintf,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...