sscanf用法


sscanf的作用:從一個字符串中讀進於指定格式相符的數據。利用它可以從字符串中取出整數、浮點數和字符串。

sscanf和scanf的區別:scanf是以鍵盤作為輸入源,sscanf是以字符串作為輸入源。

sscanf:

原型:

int sscanf(const char *str, const char *format,......);

說明:

sscanf()會將參數str的字符串根據參數format字符串來轉換格式並格式化數據。轉換后的結果存於對應的參數內。

                                              成功則返回參數數目,失敗則返回0

舉例:

1. 取指定長度的字符串

  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5.        char str[100];
  6.        sscanf("12345","%4s",str);
  7.        printf("%s\n",str);
  8.        return 0;
  9. }
  10. 輸出:1233

 

 

 

 2. 讀入字符串

  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5.        char str[100];
  6.        sscanf("12345","%s",str);
  7.        printf("%s\n",str);
  8.        return 0;
  9. }

 

  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5.        char str1[100], str2[100], str3[100];
  6.        gets(str1);
  7.        sscanf(str1,"%s%s",str2,str3);
  8.        printf("%s %s\n",str2,str3);
  9.        return 0;

10.}

 

 

3. %*d和%*s加了(*)表示跳過此數據不讀入(也就是不把此數據讀入參數中)

  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5.        char str[100];
  6.        sscanf("1234abcd","%*d%s",str);
  7.        printf("%s\n",str);
  8.        return 0;
  9. }

 

 

4.  取到指定字符為止的字符串。如例子所示,遇到‘+’為止的字符串。

  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5.        char str[100];
  6.        sscanf("1234+abc","%[^+]",str);
  7.        printf("%s\n",str);
  8.        return 0;
  9. }

 

遇到空格為止的字符串

  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5.        char str[100];
  6.        sscanf("1234+abc1234","%[^]",str);
  7.        printf("str=%s\n",str);
  8.        return 0;
  9. }

 

 

 5. 取到指定字符集為止的字符串。如遇到小寫字母為止的字符串。

  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5.        char str[100];
  6.        sscanf("1234+abc1234","%[^a-z]",str);
  7.        printf("%s\n",str);
  8.        return 0;
  9. }

 

 6. 取僅包含指定字符集的字符串。(取僅包含數字和小寫字母的字符串,是取得連續的字符串,貌似是到空格為止)。

  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5.        char str[100];
  6.        sscanf("123456abcdefBFRGTY7890","%[1-9a-z]",str);
  7.        printf("%s\n",str);
  8.        return 0;
  9. }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM