c - 使用 strtok,最后一个标记带有一个行分隔符

标签 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]);

最佳答案

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

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

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

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

关于c - 使用 strtok,最后一个标记带有一个行分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53235040/

相关文章:

c - 如何从用户输入中提取偶数,并在C程序中将它们组合成一个新数字

c - 在C中打印二维矩阵

c - 关于 "isspace"的问题

C: 如何使用 strtok 从输入文件中输出成绩并查找平均值、最小值和最大值?

c - 同时处理两个字符串时的strtok

c - 带有多个定界符的 strtok

c - 使用 strtok 中的值传递给函数

c - parent 和多个 child 的 PID。 Fork & waitpid - 函数

c - strtok() 函数错误地标记了字符串

在 Eclipse SIGSEV 中编译 C 二进制文件