c++ - C++ 中 char* 中的子字符串,strtok 到行尾

标签 c++ c text substring strtok

我尝试在 C++ 中 cat 键入 char* 的字符串 这是我的代码

void DBManager::printMatched(char* line, char* fileName)
{
    line = strtok(line,"Show");
    char* teamAName = strtok(line," ");
    char* teamACity = strtok(NULL,"-");
    char* teamBName = strtok(NULL," ");
    char* teamBCity = strtok(NULL,"\n");
}

这是一行中的文字 “显示 abcde fghij - klmnop qrstu”

这是变量数据:

 teamAName = abcde
 teamACity = fghij
 teamBName = klmnop
 teamBCity = qrs

我如何修复 teamBCity 我需要切到行的内部。

我在 Linux 系统上工作。

最佳答案

我想这就是你想要的。鉴于您的示例,不完全确定。它显然可以改进,也许您想使用更多的 c++ 工具?

void DBManager::printMatched(char* line, char* fileName)
{
    char* linecpy   = strdup(line);

    char* dummy     = strtok(linecpy," ");
    char* teamAName = strtok(NULL," ");
    char* teamACity = strtok(NULL," ");
          dummy     = strtok(NULL," ");
    char* teamBName = strtok(NULL," ");
    char* teamBCity = strtok(NULL," \n");

    printf("teamAName %s\n", teamAName);
    printf("teamACity %s\n", teamACity);
    printf("teamBName %s\n", teamBName);
    printf("teamBCity %s\n", teamBCity);

    // do something with strings here?
}

关于c++ - C++ 中 char* 中的子字符串,strtok 到行尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20666014/

相关文章:

c++ - 在哪里可以找到++ 运算符的实现?

c - 确定采样音频的时间戳

c - 返回函数时出现段错误错误

c++ - 使用串口监视器arduino控制LED

c++ - 如果可用,是否可以使用 std::endian ,否则做其他事情?

c++ - 为什么 C++11 不支持 'std::function<void(int, ...)>' ?

text - [mono]linux/monodevelop 2.6 中的阿拉伯文本渲染

c++ - 如何在 C++ 中使用比较运算符比较日期和时间

html - CSS 卡翻转和文本

python - 计算每个标记在 DataFrame 的每行中出现的次数