sscanf正則表達(dá)式用法 C 中如何用sscanf函數(shù)字符串從字符串中讀取特定位置的數(shù)據(jù)?
分居線抱怨薛飛的解釋太離譜了,不知從何說起。(↑事實(shí)上,我認(rèn)為這是先進(jìn)的黑色不要指望sscanf。它使用空格、回車符、水平制表符等作為字符串之間的分隔符。也就是說,當(dāng)遇到空格等時(shí),它認(rèn)為前面的字符串已
分居線抱怨薛飛的解釋太離譜了,不知從何說起。(↑事實(shí)上,我認(rèn)為這是先進(jìn)的黑色
不要指望sscanf。它使用空格、回車符、水平制表符等作為字符串之間的分隔符。也就是說,當(dāng)遇到空格等時(shí),它認(rèn)為前面的字符串已經(jīng)輸入,并正確地讀取它。
要獲取帶空格的字符串,可以選擇gets、fgets等,也可以編寫自己的代碼或函數(shù)。
C 中如何用sscanf函數(shù)字符串從字符串中讀取特定位置的數(shù)據(jù)?
Sscanf(STR,“%[^]][]%s”,s[0],s[1],s[2])//此處使用的密鑰格式。第一種格式是讀尾空格,第二種格式是只讀空格,萬一有其他字符要讀尾,第三種格式一般都用,不多說。下面是完整的程序,解釋如何閱讀空間。假設(shè)已知的字符串“abcd123”顯然有三個(gè)空格。我們需要將前面和后面的兩個(gè)字符串讀入s[0],s[2],并將中間的空格讀入s[1]。輸出三個(gè)已讀字符串的長度和字符串的內(nèi)容(以|分隔以便您可以清楚地看到)#include<stdio。H>main(){charstr[]=“abcd123”chars[3][10]sscanf(STR,“%[^]][]%s”,s[0],s[1],s[2])//鍵是此處使用的格式。Printf(%d%d%dn”,strlen(s[0]),strlen(s[1]),strlen(s[2]))Printf(%s |%s |%sn”,s[0],s[1],s[2])return0}輸出為:433abcd |-123
sscanf輸入字符串有空值時(shí),怎么才能得到正確的結(jié)果?
void main(){RV=fscanf(filep,%s,tokenstring)result=sscanf(tokenstring,“%[^”,“],%[^”,“],%[^”,“],%[^”,“],%s”,O,s,t,f) FP=atof(s)I=ATOI(f)printf(%s/N%LF/N%s/N%D/N“,O,F(xiàn)P,t,I)}如果直接使用fscanf讀取文件中存儲的字符串“first,25.5,second,15”,即fscanf(FP,“%[^”,“],%[^”,“],%[^”,“],%[^”,“],%s“,O,s,t,f),則結(jié)果將失敗。我還沒有調(diào)查原因。