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相對應。