sscanf的做用:從一個字符串中讀進於指定格式相符的數據。利用它能夠從字符串中取出整數、浮點數和字符串。orm
sscanf和scanf的區別:scanf是以鍵盤做爲輸入源,sscanf是以字符串做爲輸入源。字符串
sscanf:get
原型:原型
int sscanf(const char *str, const char *format,......);string
說明:io
sscanf()會將參數str的字符串根據參數format字符串來轉換格式並格式化數據。轉換後的結果存於對應的參數內。form
成功則返回參數數目,失敗則返回0class
舉例:數據
1. 取指定長度的字符串di
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- char str[100];
- sscanf("12345","%4s",str);
- printf("%s\n",str);
- return 0;
- }
- 輸出:1233
2. 讀入字符串
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- char str[100];
- sscanf("12345","%s",str);
- printf("%s\n",str);
- return 0;
- }
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- char str1[100], str2[100], str3[100];
- gets(str1);
- sscanf(str1,"%s%s",str2,str3);
- printf("%s %s\n",str2,str3);
- return 0;
10.}
3. %*d和%*s加了(*)表示跳過此數據不讀入(也就是不把此數據讀入參數中)
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- char str[100];
- sscanf("1234abcd","%*d%s",str);
- printf("%s\n",str);
- return 0;
- }
4. 取到指定字符爲止的字符串。如例子所示,遇到‘+’爲止的字符串。
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- char str[100];
- sscanf("1234+abc","%[^+]",str);
- printf("%s\n",str);
- return 0;
- }
遇到空格爲止的字符串
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- char str[100];
- sscanf("1234+abc1234","%[^]",str);
- printf("str=%s\n",str);
- return 0;
- }
5. 取到指定字符集爲止的字符串。如遇到小寫字母爲止的字符串。
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- char str[100];
- sscanf("1234+abc1234","%[^a-z]",str);
- printf("%s\n",str);
- return 0;
- }
6. 取僅包含指定字符集的字符串。(取僅包含數字和小寫字母的字符串,是取得連續的字符串,貌似是到空格爲止)。
- #include<stdio.h>
- #include<string.h>
- int main()
- {
- char str[100];
- sscanf("123456abcdefBFRGTY7890","%[1-9a-z]",str);
- printf("%s\n",str);
- return 0;
- }