sscanf可以對字串進行格式化,類似於乙個微型的正規表示式
話不多說,一切盡在**中。。。
//直接讀入
3char*s
="abc";4
char
*buf[
10] ;
5sscanf(s, "%s
", buf) ; //
將s讀入buf中
6printf("%s
", buf) ; //
abc78//
擷取指定長度字串
9char
*str ="
12345";
10char
buf[
10] ;
11sscanf(str,
"%3s
", buf) ; //擷取str的前三個字元
12printf("%s
", buf) ; //
12313
14//
分離字母和數字
15char
*str ="
123abc";
16char
buffer1[
20] ;
17char
buffer2[
20] ;
1819
sscanf(str,
"%[1-9]%[a-z]
", buffer1, buffer2) ;
20printf("%s
", buffer1) ;
//123
21printf("%s
", buffer2) ;
//abc
2223
//遇到指定字元停止
24char*s
="123#abc";
25char
buf[
10] ;
26sscanf(s,
"%[^#]
", buf) ;
//遇到#停止
27printf("%s
", buf) ;
//123
2829
//以指定字元分離字串
30char*s
="123-abc-456";
31char
buf1[
10] ;
32char
buf2[
10] ;
33char
buf3[
10] ;
34sscanf(s,
"%[^-]-%[^-]-%[^-]
", buf1, buf2, buf3) ; //
以-分隔字串
35printf(
"%s%s%s
", buf1, buf2, buf3) ; // 123, abc, 456
3637
//提取兩個符號間的字串
38char
*str ="
1#a2b3@c";
39char
buf[
20] ;
40sscanf(str,
"%*[^#]#%[^@]
", buf) ; //
提取#和@間的字串
41printf("%s
", buf) ; // a2b3
sscanf 函式小結
1.常見用法。char buf 512 sscanf 123456 s buf 此處buf是陣列名,它的意思是將123456以 s的形式存入buf中!printf s n buf 結果為 123456 2.取指定長度的字串。如在下例中,取最大長度為4位元組的字串。sscanf 123456 4s b...
sscanf 函式用法
read formatted data from a string.intsscanf constchar buffer,constchar format argument intswscanf constwchar t buffer,constwchar t format argument a f...
SSCANF用法詳解
名稱 sscanf 從乙個字串中讀進與指定格式相符的資料.int sscanf const char const char int scanf const char include sscanf與scanf類似,都是用於輸入的,只是後者以鍵盤 stdin 為輸入源,前者以固定字串為輸入源。第乙個引數...