如何在C ++中对字符串进行标记?

如何在C ++中对字符串进行标记?

Java有一个方便的拆分方法:

String str = "The quick brown fox";String[] results = str.split(" ");

有没有一种简单的方法在C ++中执行此操作?


明月笑刀无情
浏览 634回答 4
4回答

互换的青春

使用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”的解决方案。这很合适,很简单,而且你不必编写很多额外的代码:-)
打开App,查看更多内容
随时随地看视频慕课网APP