При использовании strtok последний токен поставляется с разделителем строк - PullRequest
0 голосов
/ 10 ноября 2018

Так что, когда я пишу этот код и показываю последний токен, он поставляется с разделителем строк "\ n", как мне его извлечь?

 while( fgets( c, MAX_viagens, f) != NULL ) {
    int i = 0;
    char *p = strtok (c, ":");
    char *array[6];

        while (p != NULL){
         array[i++] = p;
         p = strtok (NULL, ":");
        }
    printf ("%s\n", array[3]);

1 Ответ

0 голосов
/ 10 ноября 2018

Один простой способ добиться этого - добавить символ новой строки в разделители:

char *p = strtok (c, ":\n");
...
p = strtok (NULL, ":\n");

Или вы можете удалить его раньше (удаляет последний символ, даже если это не '\n'):

if(c[0])
{
    c[strlen(c)-1] = '\0';
}
...