如何用逗号分割字符串,可选地后跟没有正则表达式的空格?

Jan*_*roň 5 c parsing

我需要这个简单的分裂

Item one, Item2,  Item no. 3,Item 4
>
Item one
Item2
Item no.3
Item 4
Run Code Online (Sandbox Code Playgroud)
  • 我知道我可以%*[, ]scanf中使用format 来忽略逗号和空格,但这不准确:分隔符应该只是一个逗号,后面可以跟空格.
  • 我想我也不能使用strtok,因为单独的空间不是分隔符.

我真的需要正则表达式,还是有任何有效的简短方法来编码?

ver*_*ose 6

怎么样的:

char inputStr[] = "Item one, Item2,  Item no. 3,Item 4";
char* buffer;

buffer = strtok (inputStr, ",");

while (buffer) {
    printf ("%s\n", buffer);          // process token
    buffer = strtok (NULL, ",");
    while (buffer && *buffer == '\040')
        buffer++;
}
Run Code Online (Sandbox Code Playgroud)

输出:

Item one
Item2
Item no. 3
Item 4
Run Code Online (Sandbox Code Playgroud)