比方說,我希望從中分離買逗號,這樣的標準輸入的項目清單:scanf可以識別字符串中的格式字符嗎?
item1, item2, item3,...,itemn
,我也希望允許用戶發出項目和逗號之間的空格,所以這種投入是在我的程序合法:
item1,item2,item3,...,itemn
如果我使用scanf
這樣的:
scanf("%s,%s,%s,%s,...,%s", s1, s2, s3, s4,...,sn);
將T當失敗這裏沒有空格(我測試過),因爲它會將整個輸入作爲一個字符串引用。那麼我怎樣才能解決這個問題,只有C標準庫函數?
使用strtok_r()解決重新進入問題。如果你的平臺沒有strtok_r(),這裏有一個公有領域的實現:http://snipplr.com/view/16918/strtokr/ – 2009-07-12 21:12:11