數字的字串處理

2021-08-26 21:54:38 字數 1349 閱讀 4541

在一些情況下,我們可能需要把乙個字串中的數字提取出來,這時候如果自己寫函式就太麻煩了,c語言標準庫中有一些弄好的函式供我們使用。

現在我們來一起學習一下吧。

1、atoi(char* buf),atof(char* buf)。

這兩個函式一看名字就猜到了,前者是轉換成int,後者是轉換成double。

我們以atoi為例講下它的用法。

標頭檔案:

引數:如上所示。

返回值:將這一串數字變為int型,然後返回結果。

int main()

2、sscanf(char* buf,"%d",&n),sscanf(char* buf,"%lf",&n)。

這兩個函式同樣可以實現上述功能。

我們繼續以前者為例講下它的用法。

標頭檔案:

引數:如上所示,後面可以加多個引數,而且輸入格式也可以根據需要改變。

返回值:成功返回引數的數目,失敗返回0。

int main()

那麼,如何將乙個數字轉換成字串呢?

有乙個函式和sscanf相對應,那就是sprintf(buf,"%d",n)。

標頭檔案:

引數:如上所示,後面可以加多個引數,而且輸入格式也可以根據需要改變。

函式功能:把數字n以某種格式寫入字串buf。

返回值:應該和printf類似吧。不太清楚。

int main()

另外,sscanf(char* buf,"%[ ]",char* p)還可以來按某種格式分離字串。

其中第二個引數中的"%[ ]"代表集合操作。

%[a-z] 表示匹配 a 到 z 中任意字元

%[ab'] 表示匹配 a、b、' 中一員的字元

%[^a-z] 表示匹配非 a 到 z 的任意字元

%[^ab'] 表示匹配非 a、b、『 的任意字元

比如下面的**,可以將乙個等式的各個加數分離出來。

int main()

getch();

return 0;

}

而且,[^ ]與[ ]不能一起使用,就是說乙個[ ]中如果第乙個位置出現 ^ ,則它只能代表匹配非xx的字元;如果 ^ 沒有出現在第乙個位置,則表示它只是代表 』^『 這個字元。

另外,[ ]中, - 與單個字元可以混合使用,比如 %[a-z+] 表示匹配 a 到 z 和 + 中的任意字元,%[^a-z+] 表示匹配非 a 到 z 和 + 中的任意字元。

先寫這麼多吧,如有錯誤,敬請勘正。

數字的字串處理

在一些情況下,我們可能需要把乙個字串中的數字提取出來,這時候如果自己寫函式就太麻煩了,c語言標準庫中有一些弄好的函式供我們使用。現在我們來一起學習一下吧。1 atoi char buf atof char buf 這兩個函式一看名字就猜到了,前者是轉換成int,後者是轉換成double。我們以ato...

陣列, 數字, 字串的處理

包裝類 integer.parseint byte byte short short int integer long long float float double double boolean boolean char character public class text2 字串的處理 字串之...

回文數字和字串處理

時間複雜度太高,超時。class solution return true string longestpalindrome string s int n s.length string ans int max 0 for int i 0 i n i return ans 有2 n 1 個中心,時間...