目前我正在關注C書,但無法解決一個練習。鑑於此時我花了1天以上,我需要一些幫助/想法。如何使用sscanf()函數獲取字符串的一部分?
「假定str是包含一個字符串‘銷售等級’立即 由#符號前面(其它字符可以先於#和/或 按照銷售排名)。一種銷售秩是一系列十進制數字 可能包含逗號,如下面的例子:
989 24,675 1,162,620
寫的sscanf的調用,提取銷售排行(但不包括# 符號),並將其存儲在一個名爲sales_rank字符串變量「。
我明白了什麼是它的需要:
例如,如果我們有:
char *str = "ana are mer2,1#3lala";
sales_ranks應該是: 「2,1」
的情況下:
char *str = "ana ar#e mer2,1a3lala";
sales_ranks是一個空字符串。
我在這裏找到(http://cboard.cprogramming.com/c-programming/149330-getting-part-string-sscanf.html)幾個有用的信息,但它不是正確的解決方案。 他們解釋行使一種錯誤的做法是這樣的:
char *str = "ana are mer2,1#3lala";
sales_ranks是「3」,這是確定的,但不是由作者要求:「銷售排名」立即編輯#符號
之前:
我誤解了誰是先於誰。 :| (所以在鏈接暴露出的解決方案是OK)
其實我花了這麼長時間才找到這種模式的解決方案: 「{十進制}#」 :)
但有可能所以? 我的意思是,如果它是可能的:#符號立即由「銷售排行」前
我認爲如果銷售排名緊接前面是#符號,那麼在「2,1#3」中銷售排名是3 – Jack 2015-04-02 15:43:11
是的,如果排名前面有#表示銷售排名在# ,而不是之前。 – teppic 2015-04-02 15:48:53
嗯所以我誤解了模式應該是「#」。 其實應該是「#」:? –
valicfu
2015-04-02 15:50:51