簡體   English   中英

C - 如何使用帶有格式化字符串的 sscanf?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM