例如考慮C字符串數組,所有的數字sscanf可以用來匹配通配符嗎?
..."12334", "21335", "24335"...
,我想知道如何這些字符串的很多比賽這個通配符掩碼
**33* (where * = any digit 0-9)
我可以用sscanf(str, mask, ...)
做到這一點?格式"%1d%1d%[3]%[3]%1d"
似乎比我想要的要多(當33不在那裏時)和"%1d%1d33%1d"
似乎表現得很奇怪,匹配一些但不是全部匹配的條目。
上下文在我的代碼:
if (sscanf(array[i], mask, &a1, &a2, &a3) == 3)
3被的通配符的數字位數匹配。
你能顯示你的完整代碼,包括檢查返回值嗎?使用'argv [1]'作爲'sscanf()'的第一個參數的'int main()'的程序是完美的。 –
@John Zwinck我添加了用於檢查的行。 'mask'是我描述的格式,'a1,a2,a3'是32位'int's。我真的只是問,如果'sscanf'能夠完成我所描述的內容,以及格式應該是什麼 –
@jefferson你有幾個選擇。 1)濫用strchr以確保字符串中的第一次和第二次出現在您想要的地方。 2)手工製作整數,以便可以匹配每種可能的組合。 – Chirality