如何从 C 中的字符串中解析标记?
如何从输入字符串中解析标记。 例如:
char *aString = "Hello world".
我希望输出为:
“你好”“世界”
How do i parse tokens from an input string.
For example:
char *aString = "Hello world".
I want the output to be:
"Hello" "world"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

发布评论
评论(5)
以为你会在2024-07-20 09:18:15
strtok
是一个简单的答案,但您真正需要的是一个能够正确执行此操作的词法分析器。 考虑以下问题:
- “hello”和“world”之间是否有一两个空格?
- 实际上可以有任意数量的空白吗?
- 可以包含垂直空白(\n、\f、\v)还是仅包含水平空白(\s、\t、\r)?
- 可以包含任何 UNICODE 空白字符吗?
- 如果单词之间有标点符号(“你好,世界”),该标点符号是一个单独的标记,是“你好”的一部分,还是被忽略?
正如您所看到的,编写一个正确的词法分析器并不简单,而且 strtok
也不是一个正确的词法分析器。
其他解决方案可能是一个单字符状态机,它可以精确地满足您的需要,或者是基于正则表达式的解决方案,使定位单词与间隙更加通用。 有很多方法。
当然,这一切都取决于你的实际需求是什么,我也不知道,所以从strtok
开始。 但了解各种限制是有好处的。
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
您将要使用
strtok
- 这里是一个很好的例子。You are going to want to use
strtok
- here is a good example.