快速提问:我想在最后一个“/”处拆分字符串文字(文件路径)。
所以,从这个:"/folder/new/new2/new3"
结果是:"/folder/new/new2"
所以基本上,我总是希望结果是提供的绝对路径后面的一个目录。
我一直在使用 strtok
类似于此的方法来获取最后一个目录,但我不知道获取倒数第二个 目录的简单方法。 :
char *last
char *tok = strtok(dirPath, "/");
while (tok != NULL)
{
last=tok;
tok = strtok(NULL, "/");
}
最佳答案
引用 user3121023 的建议,我使用了 strrchr
,然后放置了一个空终止符来代替最后出现的“/”。
char str[] = "/folder/cat/hat/mat/ran/fan";
char * pch;
pch=strrchr(str,'/');
printf ("Last occurence of '/' found at %d \n",pch-str+1);
str[pch-str] = '\0';
printf("%s",str);
这非常有效,打印的结果是“/folder/cat/hat/mat/ran”。
关于c - 在标识符后拆分 C 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27413790/