欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言:

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

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

1、函數(shù)格式

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

2、返回值

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

說(shuō)明:

3、支持集合操作

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

4、測(cè)試代碼

#include <bits/stdc++.h>
using namespace std;
int main()
{
    // sscanf() 會(huì)從 buffer 里讀進(jìn)數(shù)據(jù),依照 format 的格式將數(shù)據(jù)寫(xiě)入到 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 提取長(zhǎng)度為 n 的字符串
    char str1[10];
    sscanf("20220901000","%8s",str1);// 提取長(zhǎng)度為 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ù)字和小寫(xiě)字母
    puts(str4);
    // 6、跳過(guò)不想要的數(shù)據(jù)
    char str5[20];
    // %s 讀取時(shí)是以空格和換行作為結(jié)束標(biāo)志的!
    sscanf("test TEST","%*s%s",str5);// 使用 %*s 來(lái)跳過(guò)前一個(gè)字符串
    puts(str5);
    // 給定一個(gè)字符串test/unique_11@qq.com,獲取 / 和 @ 之間的字符串
    char str6[20];
    sscanf("test/unique_11@qq.com","%*[^/]/%[^@]",str6);// 先把 test/ 過(guò)濾掉,再將非'@'的一串內(nèi)容送到 str6 中
    puts(str6);
    char buf[30];
    sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);// 遇到不是1-9或者A-Z的字符時(shí),即遇到小寫(xiě)字母時(shí),就已經(jīng)結(jié)束
    printf("%s\n",buf);
    return 0;
}

測(cè)試結(jié)果:

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

5、參考文章

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

相關(guān)文章

  • 利用c++和easyx圖形庫(kù)做一個(gè)低配版掃雷游戲

    利用c++和easyx圖形庫(kù)做一個(gè)低配版掃雷游戲

    這篇文章主要介紹了用c++和easyx圖形庫(kù)做一個(gè)低配版掃雷游戲,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • atoi和itoa函數(shù)的實(shí)現(xiàn)方法

    atoi和itoa函數(shù)的實(shí)現(xiàn)方法

    本文介紹了,atoi和itoa函數(shù)的實(shí)現(xiàn)方法,需要的朋友可以參考一下
    2013-03-03
  • C++的四種類型轉(zhuǎn)換

    C++的四種類型轉(zhuǎn)換

    這篇文章主要介紹了C++的四種類型轉(zhuǎn)換,有詳細(xì)的示例代碼展示,對(duì)于學(xué)習(xí)C++的同學(xué)有一定的參考價(jià)值,感興趣的同學(xué)可以參考本文
    2023-04-04
  • C語(yǔ)言簡(jiǎn)明介紹常見(jiàn)關(guān)鍵字的用法

    C語(yǔ)言簡(jiǎn)明介紹常見(jiàn)關(guān)鍵字的用法

    關(guān)鍵字是C語(yǔ)言非常重要的一部分,熟練的掌握和使用關(guān)鍵字有助于我們更加熟悉了解C語(yǔ)言,同時(shí)C語(yǔ)言的關(guān)鍵字也是面試筆試中??嫉膬?nèi)容。C語(yǔ)言的關(guān)鍵字共有32個(gè),但并不是每個(gè)關(guān)鍵字都有坑,本篇文章將通過(guò)理論聯(lián)系實(shí)際的方式為大家講解C語(yǔ)言中易混易錯(cuò)以及??嫉囊恍╆P(guān)鍵字
    2022-06-06
  • C++異常處理入門(mén)(try和catch)

    C++異常處理入門(mén)(try和catch)

    C++ 提供了異常機(jī)制,讓我們能夠捕獲運(yùn)行時(shí)錯(cuò)誤,本文就詳細(xì)的介紹了C++異常處理入門(mén),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C++私有繼承與EBO深入分析講解

    C++私有繼承與EBO深入分析講解

    這篇文章主要介紹了C++私有繼承,在私有繼承當(dāng)中,基類的公有成員和保護(hù)成員都會(huì)成為派生類的私有成員。這意味著基類的方法都會(huì)被private關(guān)鍵字描述,我們可以在派生類中使用它,但類對(duì)象無(wú)法直接調(diào)用,下面來(lái)看看詳細(xì)內(nèi)容吧
    2022-08-08
  • 如何使用C++結(jié)合OpenCV進(jìn)行圖像處理與分類

    如何使用C++結(jié)合OpenCV進(jìn)行圖像處理與分類

    在計(jì)算機(jī)視覺(jué)領(lǐng)域,OpenCV與C++結(jié)合能高效處理和分類圖像,C++的高執(zhí)行效率適合大規(guī)模數(shù)據(jù)處理,OpenCV提供豐富的功能,如圖像預(yù)處理和機(jī)器學(xué)習(xí)算法,安裝OpenCV需要配置環(huán)境和添加庫(kù)文件,本文詳細(xì)介紹了使用C++和OpenCV進(jìn)行圖像分類的過(guò)程,包括使用SVM和深度學(xué)習(xí)模型
    2024-09-09
  • 關(guān)于C語(yǔ)言文件操作方法

    關(guān)于C語(yǔ)言文件操作方法

    這篇文章主要介紹了關(guān)于C語(yǔ)言文件操作方法的相關(guān)資料,需要的朋友可以參考下
    2018-03-03
  • C++中Boost的智能指針scoped_ptr

    C++中Boost的智能指針scoped_ptr

    這篇文章介紹了C++中Boost的智能指針scoped_ptr,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • C++并查集親戚(Relations)算法實(shí)例

    C++并查集親戚(Relations)算法實(shí)例

    這篇文章主要介紹了C++并查集親戚(Relations)算法,實(shí)例分析了并查集親戚算法的原理與實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04

最新評(píng)論