字串騷操作 sscanf

2021-08-19 11:11:09 字數 1307 閱讀 2105

1. 常見用法。

char buf[512] = ;

sscanf(「123456 「, 「%s」, buf);

printf(「%s/n」, buf);

結果為:123456

2. 取指定長度的字串。如在下例中,取最大長度為4位元組的字串。

sscanf(「123456 「, 「%4s」, buf);

printf(「%s/n」, buf);

結果為:1234

3. 取到指定字元為止的字串。如在下例中,取遇到空格為止字串。

sscanf(「123456 abcdedf」, 「%[^ ]」, buf);

printf(「%s/n」, buf);

結果為:123456

4. 取僅包含指定字符集的字串。如在下例中,取僅包含1到9和小寫字母的字串。

sscanf(「123456abcdedfbcdef」, 「%[1-9a-z]」, buf);

printf(「%s/n」, buf);

結果為:123456abcdedf

5. 取到指定字符集為止的字串。如在下例中,取遇到大寫字母為止的字串。

sscanf(「123456abcdedfbcdef」, 「%[^a-z]」, buf);

printf(「%s/n」, buf);

結果為:123456abcdedf

6、給定乙個字串iios/12ddwdff@122,獲取 / 和 @ 之間的字串,先將 「iios/」過濾掉,再將非』@』的一串內容送到buf中

sscanf(「iios/12ddwdff@122」, 「%*[^/]/%[^@]」, buf);

printf(「%s/n」, buf);

結果為:12ddwdff

7、給定乙個字串「「hello, world」,僅保留world。(注意:「,」之後有一空格)

sscanf(「hello, world」, 「%*s%s」, buf);

printf(「%s/n」, buf);

結果為:world

%*s表示第乙個匹配到的%s被過濾掉,即hello被過濾了

如果沒有空格則結果為null。

給乙個實際例子,假如說有一行有兩個字串,中間以空格隔開。然後並沒有告訴你有多少行,只告訴你以空開一行作為結束,那麼這時候這個函式就發揮作用了。

char

b[n], c[n];

char

a[n];

while(gets(a) && a[0] != 0)

sscanf字串的處理

sscanf函式的高階用法 sscanf與scanf類似,都是用於輸入的,只是後者以螢幕 stdin 為輸入源,前者以固定字串為輸入源。函式原型 int scanf const char format argument 其中的format可以是乙個或多個 type t n 非 符號 注 1 亦可用於...

字串轉數字(sscanf)

字串轉字串 charbuf 512 sscanf 123456 s buf 此處buf是陣列名,它的意思是將123456以 s的形式存入buf中!printf s n buf 字串轉數字 int v sscanf s,d v atof 將字串轉換成浮點數值 atoi 將字串轉換成整數值 atol 將...

Matlab 格式化字串sscanf

sscanf 是按一定的格式從字串中讀取出字元,它有以下幾種用法 a sscanf str,format a sscanf str,format,sizea a,count sscanf a,count,errmsg sscanf a,count,errmsg,nextindex sscanf de...