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...