首页 > 解决方案 > 使用 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]);

标签: cstrtok

解决方案


实现此目的的一种简单方法是将换行符添加到分隔符:

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

或者您可以在之前删除它(删除最后一个字符,即使它不是'\n'):

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

推荐阅读