如何在C ++中对字符串进行标记?Java有一个方便的拆分方法:String str = "The quick brown fox";String[] results = str.split(" ");有没有一种简单的方法在C ++中执行此操作?
4 回答
互换的青春
TA贡献1797条经验 获得超6个赞
使用strtok。在我看来,没有必要建立一个围绕标记化的类,除非strtok没有为你提供你需要的东西。它可能没有,但是在用C和C ++编写各种解析代码的15年多来,我总是使用strtok。这是一个例子
char myString[] = "The quick brown fox";char *p = strtok(myString, " ");while (p) { printf ("Token: %s\n", p); p = strtok(NULL, " ");}
一些警告(可能不适合您的需要)。字符串在此过程中被“销毁”,这意味着EOS字符内嵌在分隔符中。正确使用可能需要您创建字符串的非const版本。您还可以在解析时更改分隔符列表。
在我看来,上面的代码比为它编写一个单独的类要简单得多,也更容易使用。对我来说,这是该语言提供的那些功能之一,并且它干净利落地完成了它。它只是一个“基于C”的解决方案。这很合适,很简单,而且你不必编写很多额外的代码:-)
- 4 回答
- 0 关注
- 656 浏览
添加回答
举报
0/150
提交
取消