詳解C語言sscanf()函數(shù)、vsscanf()函數(shù)、vscanf()函數(shù)
C語言sscanf()函數(shù):從字符串中讀取指定格式的數(shù)據(jù)
頭文件:
#include <stdio.h>
sscanf()函數(shù)用于從字符串中讀取指定格式的數(shù)據(jù),其原型如下:
int sscanf (char *str, char * format [, argument, ...]);
【參數(shù)】參數(shù)str為要讀取數(shù)據(jù)的字符串;format為用戶指定的格式;argument為變量,用來保存讀取到的數(shù)據(jù)。
【返回值】成功則返回參數(shù)數(shù)目,失敗則返回-1,錯(cuò)誤原因存于errno 中。
sscanf()會(huì)將參數(shù)str 的字符串根據(jù)參數(shù)format(格式化字符串)來轉(zhuǎn)換并格式化數(shù)據(jù)(格式化字符串請(qǐng)參考scanf()), 轉(zhuǎn)換后的結(jié)果存于對(duì)應(yīng)的變量中。
sscanf()與scanf()類似,都是用于輸入的,只是scanf()以鍵盤(stdin)為輸入源,sscanf()以固定字符串為輸入源。
【實(shí)例】從指定的字符串中讀取整數(shù)和小寫字母。
#include <stdio.h> int main(void) { char str[100] ="123568qwerSDDAE"; char lowercase[100]; int num; sscanf(str,"%d %[a-z]", &num, lowercase); printf("The number is: %d.\n", num); printf("The lowercase is: %s.", lowercase); return 0; }
輸出結(jié)果:
The number is: 123568. The lowercase is: qwer.
可以看到format參數(shù)有些類似正則表達(dá)式(當(dāng)然沒有正則表達(dá)式強(qiáng)大,復(fù)雜字符串建議使用正則表達(dá)式處理),支持集合操作,例如:
- %[a-z] 表示匹配a到z中任意字符,貪婪性(盡可能多的匹配)
- %[aB'] 匹配a、B、'中一員,貪婪性
- %[^a] 匹配非a的任意字符,貪婪性
另外,format不僅可以用空格界定字符串,還可以用其他字符界定,可以實(shí)現(xiàn)簡單的字符串分割(更加靈活的字符串分割請(qǐng)使用strtok())。例如:
sscanf("2006:03:18", "%d:%d:%d", a, b, c); sscanf("2006:03:18 - 2006:04:18", "%s - %s", sztime1, sztime2);
C語言vsscanf()函數(shù):字符串輸入函數(shù)
頭文件:
#include <stdio.h>
定義函數(shù):
int vsscanf(const char * str, const char * format, va_list ap);
函數(shù)說明:vsscanf()會(huì)將參數(shù)str 的字符串根據(jù)參數(shù)format 字符串來轉(zhuǎn)換并格式化數(shù)據(jù). 格式轉(zhuǎn)換形式請(qǐng)參考附錄C 或vprintf()范例。
返回值:成功則返回參數(shù)數(shù)目, 失敗則返回-1, 錯(cuò)誤原因存于errno 中.
C語言vscanf()函數(shù):字符串格式化輸入函數(shù)
頭文件:
#include <stdio.h> #include <stdarg.h>
定義函數(shù):
int vscanf(const char * format, va_list ap);
函數(shù)說明:vscanf()會(huì)將輸入的數(shù)據(jù)根據(jù)參數(shù)format 字符串來轉(zhuǎn)換并格式化數(shù)據(jù). 格式轉(zhuǎn)換形式請(qǐng)參考scanf(). 轉(zhuǎn)換后的結(jié)果存于對(duì)應(yīng)的參數(shù)內(nèi). va_list 用法請(qǐng)參考附錄C 或vprintf()范例.
返回值成功則返回參數(shù)數(shù)目, 失敗則返回-1, 錯(cuò)誤原因存于errno 中。
上一篇:C語言中初始、增加和刪除進(jìn)程信號(hào)的操作方法簡介
欄 目:C語言
下一篇:C語言編程中對(duì)目錄進(jìn)行基本的打開關(guān)閉和讀取操作詳解
本文標(biāo)題:詳解C語言sscanf()函數(shù)、vsscanf()函數(shù)、vscanf()函數(shù)
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/2783.html
您可能感興趣的文章
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用函數(shù)刪除字符
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)式函數(shù)庫
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言中對(duì)數(shù)函數(shù)的表達(dá)式 c語言中對(duì)數(shù)怎么表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段函數(shù)
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排序法函數(shù)
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段函數(shù)
- 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求階乘


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對(duì)數(shù)函數(shù)的表達(dá)式 c語言中對(duì)
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-10delphi制作wav文件的方法
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 04-02jquery與jsp,用jquery
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子