从分隔符“/”中提取字符串

时间:2014-09-10 14:55:53

标签: c

#include<stdio.h>
#include<malloc.h>
#include<string.h>
int main(){
        char* path = "lost+found/d1/dentry";
        char* str = malloc(100);
        char *temp;
        if(NULL == str) perror("malloc failed");
        temp = str;
        while(*path != '/'){
                *str++ = *path++;
        }
        *str = '\0';
        str = temp;
        printf("\n str : %s \n",str);
        return 0;
}

O / P:

 str : lost+found

是否有任何库函数只能提取带分隔符的字符串“/”[strrchr和srchr给出'/'的最后和第一次出现,但是我搜索的字符串丢失+找到了。

1 个答案:

答案 0 :(得分:0)

strtok是C库为标记字符串提供的最直接的方式。但是它有一些故障:

  • 您想要标记的字符串不能是const
  • strtok来电
  • 期间更改了给定的字符串

如果您只需要该路径中的第一个细分(正如问题所示)而且并非所有'/' - 分隔标记strchr也可以派上用场(以及strcpy和一些指针算术)。