sscanf函式 字串拆分函式

2021-10-19 09:33:36 字數 2648 閱讀 1028

sscanf的作用:從乙個字串中讀進於指定格式相符的資料。利用它可以從字串中取出整數、浮點數和字串。

sscanf和scanf的區別:scanf是以鍵盤作為輸入源,sscanf是以字串作為輸入源。

提取某個字串中的有效資訊,放入指定變數或字串中

跟scanf一樣,遇到空格或者換行結束讀取

如果是拆分後放入多個字串中,會首先看第乙個字元是否匹配成功,如果不成功結束匹配,然後拆分過程中遇到空格結束拆分當前字串,將所讀取的內容放入指定字串中,然後檢視後續是否還有要放入的字串,如果有繼續進行下一輪拆分,直到沒有要放入的子符串為止

#define _crt_secure_no_warnings

#include

#include

void

test()

;char s2[

300]=;

char s3[

300]=;

char s4[

300]=;

//遇到空格結束讀取

將已知的字串通過格式化匹配出有效資訊1、%*s或%*d 跳過資料,%*2d可以選擇跳過幾個數字,不然就會預設都跳過

2、%[width]s 讀指定寬度的資料

3、%[a-z] 匹配a到z中任意字元(盡可能多的匹配)

4、%[abc] 匹配a、b、c中一員,貪婪性

5、%[^a] 匹配非a的任意字元,貪婪性

6、%[^a-z] 表示讀取除a-z以外的所有字元

1.取出指定長度字串

#include

#include

intmain()

2.格式化時間

#include

#include

intmain()

;int year;

int month;

int day;

char ch[32]

=;char ch1[32]

=;char ch2[32]

=;sscanf

("2002/2/18 hello the world"

,"%d/%d/%d %s %s %s"

,&year,

&month,

&day,

&ch,

&ch1,

&ch2)

;printf

("%d/%d/%d %s %s %s"

,year,month,day,ch,ch1,ch2)

;return0;

}

3.讀入字串

5.字串中未輸入資料

6.取到指定字符集為止的字串。如遇到小寫字母為止的字串。

#include

#include

intmain()

7.取僅包含指定字符集的字串。(取僅包含數字和小寫字母的字串,是取得連續的字串)。

#include

#include

intmain()

Oracle拆分字串函式

原文中 有個錯誤 v start v length 1 雖然設定下次查詢起點為字串長度 1,但下次v index還是0,程式不會退回。程式沒有退出條件,故本句應改出使程式退出。exit 還有,原文中未檢測傳入的字串引數為null或為空的情況 此時返回的v index為空 下面改正了,見紅色字型部分。...

mysql拆分字串函式

業務需求 拆分字串,然後將數字轉換成中文描述,返回成以,分割的中文描述 修改結束符,防止在mysql命令列中預設分號直接執行 delimiter 建立乙個計算拆分後字串的個數函式 drop function if exists calc length create function calc len...

Oracle拆分字串函式

本函式可以將 目標字串 以 指定字串 進行拆分,並通過表結構返回結果。如下 create or replace type str split is table of varchar2 4000 create or replace function splitstr p string in varch...