我尝试在 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/