sscanf用法小結

2021-09-05 22:41:05 字數 1659 閱讀 3254

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 為輸入源,前者以固定字串為輸入源。第乙個引數...