C++如何用strtok多次分割,对分割得到的字符串再分割?

2025-01-19 02:23:02
推荐回答(1个)
回答1:

下面的C代码可以达到你的要求,仅供参考。

#include
#include

void main(int argc, char *argv[])
{
char code[] = "th is$i s$a n$prob lem";
char *p1 = code;
char *p2;
while((p2 = strtok(p1, " $")) != (char *)NULL)
{
printf("%s\n", p2);
p1 = (char *)NULL;
}
}

对问题补充的回答:
如果需要“该字符串先用"$"作为分隔符分割,再对分割出的字符串用" "(空格)作为分隔符分割”,那么问题的解决将变得稍微复杂了些。请参看如下代码。

#include
#include

void main(int argc, char *argv[])
{
char code[] = "th is$i s$a n$prob lem";
int len = strlen(code);
char *p1 = code;
char *p2;
char *p3;
while((len > 0) && (p2 = strtok(p1, "$")) != (char *)NULL)
{
p1 += strlen(p2) + 1;
len -= strlen(p2) + 1;
while((p3 = strtok(p2, " ")) != (char *)NULL)
{
printf("%s\n", p3);
p2 = (char *)NULL;
}
}
}