【发布时间】:2025-12-12 10:20:05
【问题描述】:
我正在使用 strtok 将字符串分成几个部分。 在此示例中,将从字符串中读取所有部分,以冒号或分号为界
char string[] = "Alice1:IscoolAlice2; Alert555678;Bob1:knowsBeepBob2;sees";
char delimiter[] = ":;";
char *p;
p = strtok(string, delimiter);
while(p != NULL) {
cout << "Result: " << p << endl;
p = strtok(NULL, delimiter);
}
我得到的结果:
Result: Alice1
Result: IscoolAlice2
Result: Alert555678
Result: Bob1
Result: knowsBeepBob2
Result: sees
但我想得到这个结果:
Result: Alice1:
Result: Alice2;
Result: Bob1:
Result: Bob2;
限制是我在使用 strtok 时只能选择单个字符。 有谁知道我也可以搜索字符串的 strtok 替代方案? 或者有没有人想办法解决我的问题?
【问题讨论】:
-
你打算如何将 Iscool 这个词从 Alice2 中分离出来?没有差距。
-
你可能想要
boost::tokenizer。 -
我认为您需要提供更清晰的问题陈述。您似乎正在寻找在 : 之后或之前出现的东西:由 ; 分隔。然后取最后一个大写字母之后的所有内容。