在 C 中,解析具有多个定界符的字符串的最佳方法是什么?假设我有一个字符串 A,B,C*D
并想存储 A B C D 的这些值。我不确定如何优雅地处理 *
,其他而不是存储最后一个字符串 C*D
,然后使用 *
分隔符单独解析它。
如果它只是 A,B,C,*D
我会使用 strtok() 并忽略 *D
的第一个索引来得到 D,但是 *
之前没有逗号,所以我不知道 *
来了。
最佳答案
您可以在strtok
中使用多个 定界符,第二个参数是一个C 字符串,其中包含列表 定界符,而不仅仅是一个单分隔符:
#include <stdio.h>
#include <string.h>
int main (void) {
char myStr[] = "A,B,C*D";
char *pChr = strtok (myStr, ",*");
while (pChr != NULL) {
printf ("%s ", pChr);
pChr = strtok (NULL, ",*");
}
putchar ('\n');
return 0;
}
该代码的输出是:
A B C D
关于c - 在 C 中使用多个定界符进行解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27791179/