gpt4 book ai didi

c - 如何在c中扫描以逗号分隔的字符串中的数字

转载 作者:行者123 更新时间:2023-11-30 14:49:06 25 4
gpt4 key购买 nike

我正在尝试扫描以逗号分隔的字符串中的 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. */
}

关于c - 如何在c中扫描以逗号分隔的字符串中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49958119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com