gpt4 book ai didi

c - 如何使用 c 解析 ',' 分隔的 char 字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 06:09:45 24 4
gpt4 key购买 nike

解析逗号分隔列表的最简单方法是什么,其中每个标记之间可以有零个元素。 cstring 可能看起来像

1, 3, 4, 5, 6, 7, 8, ....

但也可以看起来像

, , , , , , , , , ...

我试过类似的方法:

char *original = "1, 3, 4, 5, 6, 7, 8, ...."
char *tok = strtok(original," ,")
while(tok!=NULL){
while(*tok!='\0'){
//dostuff
tok++;
}
tok=strtok(NULL," ,");
}

这显然只有在逗号之间有元素时才有效,例如我注意到如果没有元素,第一个项目列表将被跳过。

我尝试过其他解决方案,例如 strchr(),但这变得非常丑陋,我认为有更简单的方法。

谢谢

更新:

经过一些测试后,我注意到对“,”进行分词似乎在所有情况下都有效,除非第一项缺失。所以我把它作为一个特例拿出来。

char *original = "1, 3, 4, 5, 6, 7, 8, ...."
if(*original==',')
//dostuff
char *tok = strtok(original,",")
while(tok!=NULL){
while(*tok!='\0'){
//dostuff
tok++;
}
tok=strtok(NULL,",");
}

感谢您的投入和帮助。 (也许我应该在发布之前更仔细地考虑一下。)

最佳答案

您可能需要查看非标准 strsep ,旨在替代 strtok ,它允许解析空字段。另请参阅关于 Finding Tokens in a String 的 glibc 手册章节.它在许多系统(各种 BSD、Linux、Mac OS X)上可用,但没有标准化,所以我相信它可能不存在于 Windows 或 Solaris 上。

关于c - 如何使用 c 解析 ',' 分隔的 char 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1978399/

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