подстрока в char * в c ++ со strtok до конца строки

0

Я пытаюсь cat string, который вводит char * в c++, это мой код

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.

  • 0
    Похоже, проблема в процедуре вызова. Как вызывается printMatched() ?
  • 0
    когда я вызываю функцию, в конце строки есть \ n, но после line = strtok (line, "Show"); \ n не работает ..
Показать ещё 1 комментарий
Теги:
text
substring
strtok

1 ответ

1
Лучший ответ

Я думаю, это то, что вы хотите. Не совсем уверен в вашем примере. Очевидно, что это может быть улучшено, и, возможно, вы хотите использовать больше С++ ish?

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?
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню