簡體   English   中英

如何在C中用逗號分隔的字符串中掃描數字

[英]How to scan for numbers in strings separated by commas in c

我正在嘗試掃描以逗號分隔的字符串中的RGB值

char colors[11]= "255,80,120";
int r,g,b;
sscanf("%3[^,]%d", colors, &r, &g, &b);

但是,當我嘗試打印這些值時,它們全都是0。 我應該怎么做? 我只是想把這部分放下來,但是這將被實現為代碼,以點亮音樂節拍的LED燈帶,因此這將需要循環播放,所以如果有人也可以幫助那部分,那就太好了。

您對int sscanf(const char *str, const char *format, ...)調用是錯誤的。 第一個參數應該是要用來解析數據的字符串,而不是格式。 另外,您必須將格式從"%3[^,]%d"更改為"%d,%d,%d" 因此,您的代碼應為:

sscanf(colors, "%d,%d,%d", &r, &g, &b);

代替:

sscanf("%3[^,]%d", colors, &r, &g, &b);

還可以考慮增加colors的大小,以便它可以容納字符串的所有字符以及空字符\\0

編輯 :正如@chux在評論中提到的,應該檢查sscanf的返回值以處理錯誤情況:

if (sscanf(colors, "%d,%d,%d", &r, &g, &b) != 3) {
    /* Handle errors. */
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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