C语言sscanf()函数(从字符串读取格式化输入,提取需要的信息)
生活随笔
收集整理的這篇文章主要介紹了
C语言sscanf()函数(从字符串读取格式化输入,提取需要的信息)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
需包含頭文件:C 標準庫 - <stdio.h>
文章目錄
- 描述
- 聲明
- 參數(shù)
- 返回值
- 實例
- 我在VS上測試(VS上要用sscanf_s)
- 示例1
- 示例2(提取時能默認以空格分割)
描述
C 庫函數(shù) int sscanf(const char *str, const char *format, ...) 從字符串讀取格式化輸入。
聲明
下面是 sscanf() 函數(shù)的聲明。
int sscanf(const char *str, const char *format, ...)參數(shù)
- str – 這是 C 字符串,是函數(shù)檢索數(shù)據(jù)的源。
- format – 這是 C 字符串,包含了以下各項中的一個或多個:空格字符、非空格字符 和 format 說明符。
- format 說明符形式為 [=%[*][width][modifiers]type=],具體講解如下:
sscanf 類型說明符:
- 附加參數(shù) – 這個函數(shù)接受一系列的指針作為附加參數(shù),每一個指針都指向一個對象,對象類型由 format 字符串中相應(yīng)的 % 標簽指定,參數(shù)與 % 標簽的順序相同。
- 針對檢索數(shù)據(jù)的 format 字符串中的每個 format 說明符,應(yīng)指定一個附加參數(shù)。如果您想要把 sscanf 操作的結(jié)果存儲在一個普通的變量中,您應(yīng)該在標識符前放置引用運算符(&),例如:
返回值
如果成功,該函數(shù)返回成功匹配和賦值的個數(shù)。如果到達文件末尾或發(fā)生讀錯誤,則返回 EOF。
實例
下面的實例演示了 sscanf() 函數(shù)的用法。
#include <stdio.h> #include <stdlib.h> #include <string.h>int main() {int day, year;char weekday[20], month[20], dtm[100];strcpy( dtm, "Saturday March 25 1989" );sscanf( dtm, "%s %s %d %d", weekday, month, &day, &year );printf("%s %d, %d = %s\n", month, day, year, weekday );return(0); }讓我們編譯并運行上面的程序,這將產(chǎn)生以下結(jié)果:
March 25, 1989 = Saturday我在VS上測試(VS上要用sscanf_s)
sscanf_s 取值的時候,需要在每個取值后面指定取值的最大大小。
(而且根據(jù)VS提示,貌似還需要是 unsigned int 類型)
示例1
#include <stdio.h> #include <stdlib.h> #include <string.h>int main() {int day, year;char weekday[20], month[20], dtm[100];strcpy_s(dtm, "Saturday March 25 1989");sscanf_s(dtm, "%s %s %d %d", weekday, (unsigned int)sizeof(weekday), month, (unsigned int)sizeof(month), &day, &year);printf("%s %d, %d = %s\n", month, day, year, weekday);return(0); }運行結(jié)果:
March 25, 1989 = Saturday示例2(提取時能默認以空格分割)
#include <stdio.h> #include <stdlib.h> #include <string.h>int main() {char line[1024] = "path=/live/main_stream video_type=7 width=1920 height=1080 image_type=4 video_path=rkispp_scale0";const char* p;p = strstr(line, "path=");char path[64];if(NULL != p)sscanf_s(p, "path=%s", path, (unsigned int)sizeof(path));return(0); }運行調(diào)試結(jié)果:
參考文章1:C 庫函數(shù) - sscanf()
參考文章2:sscanf,sscanf_s及其相關(guān)用法
總結(jié)
以上是生活随笔為你收集整理的C语言sscanf()函数(从字符串读取格式化输入,提取需要的信息)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言strstr()函数(在主字符串里
- 下一篇: 计算机里的dump是什么意思?(转储、转