[英]C - how to use sscanf with a formatted string?
我有一個我已經成功格式化的字符串(是的,空格不一致):
|Prague| |Sunny|
|Prague| |Cloudy|
|Prague| |Rain|
|New York||Sunny|
|New York||No data|
|New York||Rain|
我可以改變性格|
很容易到任何其他字符順便說一句。
我想以這種方式分配每個文本:
炭城; => 布拉格
炭化天氣; => 晴天
等等
我嘗試像這樣使用 sscanf: sscanf(input, "|%s||%s|", city, weather);
但它不起作用。
任何想法我做錯了什么? 也許一些正則表達式會有所幫助?
順便說一句,我得到的錯誤結果是:
Prague, ����
Prague, ����
Prague, ����
....
那是因為 2 |
之間有一個空格。 的。
您可以忽略第一個結尾之間的任何字符|
和第二次出發|
通過添加%*[^|]
這意味着:“忽略所有內容,直到找到|
。
sscanf(input, "|%s|%*[^|]|%s|", city, weather);
但是如果你可以有兩個或更多的詞,你應該使用與%s
不同的說明符:
sscanf(input, "|%[^|]|%*[^|]|%[^|]|", city, weather);
嘗試使用
char *
代替
char
字符
只是一個字符,但你需要一個指針。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.