最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言中字符串處理函數(shù)sscanf的用法

 更新時(shí)間:2023年08月21日 09:36:55   作者:algsup  
一直對(duì)于一些日期字符串中數(shù)字的提取比較頭疼,現(xiàn)看到 sscanf 對(duì)于字符串中的內(nèi)容提取較方便,本文主要介紹了C語言中字符串處理函數(shù)sscanf的用法,具有一定參考價(jià)值,感興趣的可以了解一下

前言:

一直對(duì)于一些日期字符串中數(shù)字的提取比較頭疼,現(xiàn)看到 sscanf 對(duì)于字符串中的內(nèi)容提取較方便,學(xué)習(xí)記錄如下。方便以后查詢。

sscanf() :將 C 語言字符串中數(shù)據(jù)按 指定的格式 將數(shù)據(jù)存儲(chǔ)在對(duì)應(yīng)的參數(shù)中。

1、函數(shù)格式

// sscanf() 會(huì)從 buffer 里讀進(jìn)數(shù)據(jù),依照 format 的格式將數(shù)據(jù)寫入到 argument 里,注意這里的 argument 需要使用地址符號(hào)
// 轉(zhuǎn)換格式參考 scanf() 即可
int sscanf(const char *buffer, const char *format, [argument ]... );

2、返回值

成功則返回參數(shù)數(shù)目,失敗則返回-1,錯(cuò)誤原因存于errno中。

說明:

3、支持集合操作

  •  %[a-z] 表示匹配 a 到 z 中任意字符,貪婪性(盡可能多的匹配);
  • %[aB] 匹配 a、B 中一員,貪婪性;
  • %[^a] 匹配非 a 的任意字符,并且停止讀入,貪婪性;

4、測試代碼

#include <bits/stdc++.h>
using namespace std;
int main()
{
    // sscanf() 會(huì)從 buffer 里讀進(jìn)數(shù)據(jù),依照 format 的格式將數(shù)據(jù)寫入到 argument 里,注意這里的 argument 需要使用地址符號(hào)
    // format 格式參考 scanf() 的輸入格式即可
    // 1、取需要的字符串
    int year,month,day;
    sscanf("2022.09.21","%d.%d.%d",&year,&month,&day);// 提取年、月、日
    printf("%d %d %d\n",year,month,day);
    //2、 %ns 提取長度為 n 的字符串
    char str1[10];
    sscanf("20220901000","%8s",str1);// 提取長度為 8 的字符串
    printf("%s\n",str1);
    // 3、將數(shù)字表示的字符串轉(zhuǎn)換為整型變量
    int num;
    sscanf("123456","%d",&num);
    printf("%d\n",num);
    // 4、取到指定字符為止的字符串
    char str2[10];
    sscanf("test 01","%[^ ]",str2);// 取遇到空格為止的字符串
    puts(str2);
    char str3[10];
    sscanf("test/01","%[^/]",str3);// 取遇到'/'為止的字符串
    puts(str3);
    // 5、取僅包含指定字符集的字符串
    char str4[20];
    sscanf("123456testSIX","%[1-9a-z]",str4);// 只取數(shù)字和小寫字母
    puts(str4);
    // 6、跳過不想要的數(shù)據(jù)
    char str5[20];
    // %s 讀取時(shí)是以空格和換行作為結(jié)束標(biāo)志的!
    sscanf("test TEST","%*s%s",str5);// 使用 %*s 來跳過前一個(gè)字符串
    puts(str5);
    // 給定一個(gè)字符串test/unique_11@qq.com,獲取 / 和 @ 之間的字符串
    char str6[20];
    sscanf("test/unique_11@qq.com","%*[^/]/%[^@]",str6);// 先把 test/ 過濾掉,再將非'@'的一串內(nèi)容送到 str6 中
    puts(str6);
    char buf[30];
    sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);// 遇到不是1-9或者A-Z的字符時(shí),即遇到小寫字母時(shí),就已經(jīng)結(jié)束
    printf("%s\n",buf);
    return 0;
}

測試結(jié)果:

2022 9 21
20220901
123456
test
test
123456test
TEST
unique_11
123456

5、參考文章

到此這篇關(guān)于C語言中字符串處理函數(shù)sscanf的用法的文章就介紹到這了,更多相關(guān)C語言 sscanf內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • C語言的遞歸函數(shù)詳解

    C語言的遞歸函數(shù)詳解

    這篇文章主要為大家介紹了C語言的遞歸函數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • VC6.0常用快捷鍵大全

    VC6.0常用快捷鍵大全

    這篇文章主要介紹了VC6.0常用快捷鍵大全,非常實(shí)用,需要的朋友可以參考下
    2014-08-08
  • C語言中dlopen和dlsym的使用方式詳解

    C語言中dlopen和dlsym的使用方式詳解

    這篇文章主要為大家詳細(xì)介紹了C語言中dlopen和dlsym的使用方式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 嵌入式C實(shí)戰(zhàn)項(xiàng)目開發(fā)技巧:對(duì)一個(gè)有規(guī)律的數(shù)組表進(jìn)行位移操作的方法

    嵌入式C實(shí)戰(zhàn)項(xiàng)目開發(fā)技巧:對(duì)一個(gè)有規(guī)律的數(shù)組表進(jìn)行位移操作的方法

    今天小編就為大家分享一篇關(guān)于嵌入式C實(shí)戰(zhàn)項(xiàng)目開發(fā)技巧:對(duì)一個(gè)有規(guī)律的數(shù)組表進(jìn)行位移操作的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • C++?plog日志使用方法介紹

    C++?plog日志使用方法介紹

    最近突然心血來潮,想學(xué)一下日志方面的操作。在網(wǎng)上找了很多日志相關(guān)的技術(shù),最終還是決定使用plog,小巧,快速,跨平臺(tái)
    2022-10-10
  • C++?內(nèi)存管理深入解析

    C++?內(nèi)存管理深入解析

    C++內(nèi)存管理分棧、堆、全局/靜態(tài)區(qū)等,需手動(dòng)控制動(dòng)態(tài)內(nèi)存分配,通過new/delete管理對(duì)象生命周期,推薦使用智能指針和RAII原則避免內(nèi)存泄漏、懸空指針等錯(cuò)誤,確保程序安全高效運(yùn)行,本文給大家介紹c++內(nèi)存管理的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2023-10-10
  • C語言實(shí)現(xiàn)逆波蘭式實(shí)例

    C語言實(shí)現(xiàn)逆波蘭式實(shí)例

    這篇文章介紹了C語言實(shí)現(xiàn)逆波蘭式實(shí)例,有需要的朋友可以參考一下
    2013-09-09
  • C++重載輸入和輸出運(yùn)算符詳解

    C++重載輸入和輸出運(yùn)算符詳解

    在C++中,標(biāo)準(zhǔn)庫本身已經(jīng)對(duì)左移運(yùn)算符<<和右移運(yùn)算符>>分別進(jìn)行了重載,使其能夠用于不同數(shù)據(jù)的輸入輸出,本節(jié)以前面的?complex?類為例來演示輸入輸出運(yùn)算符的重載,需要的朋友可以參考下
    2023-09-09
  • C++中signed?main和int?main的區(qū)別

    C++中signed?main和int?main的區(qū)別

    這篇文章介紹了C++中signed?main和int?main的區(qū)別,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • OpenCV圖像處理之實(shí)現(xiàn)圖像膨脹腐蝕操作

    OpenCV圖像處理之實(shí)現(xiàn)圖像膨脹腐蝕操作

    圖像形態(tài)學(xué)操作是指基于形狀的一系列圖像處理操作的合集,主要是基于集合論基礎(chǔ)上的形態(tài)學(xué)數(shù)學(xué)對(duì)圖像進(jìn)行處理。本文將為大家介紹一下如何利用OpenCV實(shí)現(xiàn)其中的腐蝕和膨脹操作,需要的可以參考一下
    2022-09-09

最新評(píng)論

文水县| 旬阳县| 奎屯市| 南木林县| 涞水县| 赣州市| 台南市| 武冈市| 昂仁县| 南郑县| 介休市| 麦盖提县| 滁州市| 平潭县| 祁阳县| 尼玛县| 上思县| 什邡市| 渑池县| 廊坊市| 宜川县| 海口市| 龙南县| 丰原市| 北流市| 桦甸市| 汶川县| 惠水县| 肇庆市| 奎屯市| 嘉荫县| 壤塘县| 民丰县| 海盐县| 丽江市| 修水县| 镇坪县| 枣强县| 望江县| 忻城县| 宁陕县|