查找字符串在另一个字符串中最后一次出现的位置—— C语言的sttr和wxWidgets的beforelast函数
查找字符串在另一个字符串中最后一次出现的位置——
C语言的sttr和wxWidgets的beforelast函数)
查找字符串在另一个字符串中最后一次出现的位置—— C语言的sttr和wxWidgets的beforelast函数
wxWidgets的wxString的BeforeLast函数
wxString wxString::BeforeLast ( wxUniChar ch,
wxString * rest = NULL
) const
获取最后一次出现ch之前的所有字符。
如果未找到ch,则返回空字符串。rest可以省略
A问题:
如**“home/liai/001/”目录下存在n个文件,我通过方法获得了其中的“home/liai/001/lele.txt”,但我想返回lele.txt的上层,001/,然后获取001下的另一个文件,list.txt,那么,如下代码可以很好的解决****
//假设filepath="home/liai/001/lele.txt"
m_filepath = filepath.BeforeLast(wxT('/'));
if(!m_filepath.EndsWith(wxT("/"))){
m_filepath = m_filepath+wxT('/');
}
m_filepath = m_filepath+wxT("list.txt")
C语言的sttr
字符串操作函数 查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符
#include <string.h>
#include <stdio.h>
int main(void)
{
char string[20];
char *ptr, c = 'r';
strcpy(string, "There are two rings");
ptr = strrchr(string, c);
if (ptr)
printf("The character %c is at position: %s\n", c, ptr);
else
printf("The character was not found\n");
return 0;
}
运行结果是:The character r is at position:rings
C 语言解决A问题就多了点步骤,它只能是确定了位置,然后再截取
但它对于解决截取文件名是很有用的
char fn[100];
char fp[500] = "/host/HY/linux/GTK/HTYPaint/bear.jpg";
char *ptr = strrchr(fp, '/');
sprintf(fn,"%s",ptr+1);