如何在C中编写*nix的基本名称

Bla*_*est 0 c substring

我想从字符串中提取基本名称,比如

/opt/home/etc/sample
Run Code Online (Sandbox Code Playgroud)

也就是说,我想解析一个返回大字符串的字符串sample,或者解析最后一个/字符后面的子字符串.字符串可以是任何长度.

怎么可以这样做?

Jay*_*Jay 5

char *input = "/opt/home/etc/sample";
char *output = NULL;

output = strrchr(input, '/');

if(output != NULL)
{
    printf("%s\n", output);
}
Run Code Online (Sandbox Code Playgroud)

或者其他方面是您可以尝试自己解析它(下面的代码只是一个示例,并不处理所有错误和边界条件,您可以自己尝试和学习)

char *input = "/opt/home/etc/sample";
int len = 0;
char *temp = NULL;

len = strlen(input);
temp = input + (len-1);
len--;

while((*temp != '/') && (len >= 0))
{
  temp--;
  len--;
}


if(len>=0)
{
   printf("%s\n", temp);
}
Run Code Online (Sandbox Code Playgroud)