例如:

istringstream ss("hello hi here haha");
string p;
while (iss >> p)
{
    if (p == "hello")
        statement1;
    else if (p == hi)
        statement2;
}

这里使用了语法分析,那么b在c中可以做什么呢?

最佳答案

这是一个示例代码,将您的代码片段转换为C:

#include <stdio.h>
#include <string.h>

int main ()
{
  char s[] ="hello hi here haha";
  char *tok;
  char *last;
  tok = strtok_r(s, " ", &last);
  while (tok != NULL) {
    if(!strcmp(tok, "hello"))
      statement1;
    else if(!strcmp(tok, "hi"))
      statement2;
    tok = strtok_r(NULL, " ", &last);
  }
  return 0;
}

更新,我在评论中按照Adam Rosenfield的建议将strtok的调用更改为strtok_r

关于c++ - 在解析的情况下,可以在C中代替istringstream(在C++中)使用什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12753470/

10-10 21:10