【问题标题】:How can you access a token from strtok()?如何从 strtok() 访问令牌?
【发布时间】:2021-06-05 06:12:38
【问题描述】:

假设您将以下字符串“Hello World”标记为空格,您将得到以下信息:

Hello
World

例如,如果我想从第一个标记(“Hello”)开始计算每个元音,我该怎么做?我将如何仅使用第一个令牌?有没有办法做到这一点?

【问题讨论】:

  • 如果“Hello”本身只是一个std::string,它的工作方式也是一样的。所有字符串都是相似的,无论它们来自strtok 还是其他来源。你的问题和strtok有什么关系,这个不太清楚?
  • 请注意,在英语中,“y”有时是元音,有时与发音方式无关,这取决于上下文。因此,用英语计算元音是相当困难的,如果没有一些自然语言处理是不可能的。

标签: c++ string char c-strings


【解决方案1】:

如果您必须使用 strtok(),请记住 strtok() 是一个 C 调用,其中包含对内部定义的全局变量的引用。

当您调用 strtok() 时,它会返回一个指向第一个标记的指针,并通过注入空字符来修改源字符串。

这意味着您可以像使用它自己的字符串一样使用返回的指针。

char * token = strtok("Hello\nWorld", "\n");
size_t vowelCount = strcspn ( token, "aeiouyAEIOUY" );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-09
    • 2021-02-16
    • 2012-10-27
    • 2012-09-16
    • 2013-03-30
    • 2021-11-10
    • 2018-08-25
    • 2023-03-07
    相关资源
    最近更新 更多