使用strtok,最后一个令牌带有行定界符

时间:2018-11-10 00:49:17

标签: c strtok

因此,在编写此代码并显示最后一个标记时,它带有行定界符“ \ 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 :(得分:2)

一种简单的方法是将新行字符添加到定界符中:

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

或者您可以将其删除(即使不是'\n',也可以删除最后一个字符):

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