C字符串 - 在某些字符后保存

时间:2017-10-13 20:56:38

标签: c string pointers

//Example 1
char * p = "/dir1/dir2/dir3/dir4";
// Need to convert to....
char * p = "dir4";

//Example 2
char * p = "/dir1/dir2/dir3/dir4/dir5";
// Need to convert to....
char * p = "dir5";

我有一个可以改变的字符指针p。如何将每个字符串的结尾保存到单独的char指针。

我是否会循环播放字符串并计算所有' /',然后保存最后一个的位置?用它来启动新字符串?

1 个答案:

答案 0 :(得分:1)

使用strrchr,它会扫描字符串从结尾开始直到它找到某个字符:

int main() {

    char * p = "/dir1/dir2/dir3/dir4/dir5";

    char *lastDir = strrchr(p,'/');
    if (lastDir)
        p = lastDir + 1;


    printf("p: %s\n", p);
}