sscanf sprintf的用法(個人總結)

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

sscanf:

int sscanf(const char *str, const char *format,......);


說明:

sscanf()會將參數str的字符串根據參數format字符串來轉換格式並格式化數據。轉換後的結果存於對應的參數。成功則返回參數數目,失敗則返回0。

注意:

1.參數不支持string,使用字符串數組。如果想用可以參考使用stringsteam;

2.第二個參數實際上是一個匹配,支持正則表達式,但是部分正則表達式不支持;

  常用匹配:

  1.  *  亦可用於格式中, (即 %*d 和 %*s) 加了星號 (*) 表示跳過此數據不讀入. (也就是不把此數據讀入參數中);

  2. ^ 爲否符號,表示不想匹配的符號;                                      

      如果^放到[]的外邊則表示以[]開頭的字符串;

  3. |  或運算符

  4.“$” 結束符

常用使用情況:

1.字符串和int類型轉換;

int main(){
	char s[8]="123";
	int a;
	sscanf(s,"%d",&a);
	printf("%d",a);       //輸出123
} 

 2.取指定字符串長度

int main(){
	char s[8]="abc";
	char a[3];
	sscanf(s,"%2s",&a);
	printf("%s",a);        //輸出ab
} 

3.正則匹配情況

 取僅包含指定字符集的字符串(只要有不滿足就停止匹配)

int main(){
	char s[8]="11aAbc";
	char a[3];
	sscanf(s,"%[0-9a-z]",&a);
	printf("%s",a);        //輸出11a
} 

sprintf與sscanf相對應。

 

 

 

發佈了51 篇原創文章 · 獲贊 9 · 訪問量 9464
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章