c - 在最后一次指定出现 "special"符号 + C 时分割字符串

标签 c string split

我有一个 C 语言的字符串(路径名),我需要从字符串中删除最后一个/...。

Ex: home/usr/bin/ls

Wanted result: home/usr/bin

老实说,我似乎想不出一种方法来做到这一点。我尝试了 strtok() 但这会将字符串与第一次出现的分隔符分开,我只需要删除最后一次出现“/”之后的文本。如果有人有任何 C 语言方法的指针可以帮助我做到这一点,我将非常感激。

最佳答案

使用strrchr

此处最大字符串长度为 50 字节。

int main()
{
    char s1[50];
    printf("enter your string\n");
    fgets(s1, 50, stdin);
    char *p;
    p=strrchr(s1, '/');
    if(p)
        *p='\0';
    printf("output is %s\n",s1);
    return 0;
}

关于c - 在最后一次指定出现 "special"符号 + C 时分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26980253/

相关文章:

c - 将两个字符数组的值相加

java - 有没有办法让 g.drawstring 显示随机字符串

java - 如何从后面开始检查字符串是否包含特定字母

c - 零初始化结构未出现在内存中

c - 无法定位 Bug

C -> sizeof 字符串始终为 8

java - 字符串是不可变的!但是我仍然可以修改并获得原始字符串的新副本吗?

r - '['正确地执行了什么操作?

python - 用任意数量的空格分割字符串

python - 如何使用 split() 而不是 re.findall 进行相同的字符串分割