函数简介
函数名称: strrchr
函数原型:char *strrchr(const char *str, char c);
所属库: string.h
函数功能:查找一个字符c在另一个字符串str中末次出现的位置(也就是从str的右侧开始查找字符c首次出现的位置),并返回这个位置的地址。如果未能找到指定字符,那么函数将返回NULL。使用这个地址返回从最后一个字符c到str末尾的字符串。
char string[20];char *ptr, c = 'r';strcpy_s(string, sizeof(string), "There are two rings");ptr = strrchr(string, c);if (ptr)printf("The character [%c - %c] is at position: %s\n", c, *ptr, ptr);elseprintf("The character was not found\n");The character [r - r] is at position: rings
strrchr返回的指针应当指向”rings”里的’r’,而不是“There”或”are”里的’r’。
运行结果是:The character r is at position:rings
从文件路径中提取文件名
char fn[100];char fp[500] = "/host/HY/linux/GTK/HTYPaint/bear.jpg";char *ptr = strrchr(fp, '/');sprintf(fn,"%s",ptr+1);
运行结果:fn=”bear.jpg”
char filePath[] = "D:\\soft\\file\\word.exe";(strrchr(filePath, '\\'))[1] = 0; //是将斜杆后面的一个字符作为字符串结束符。cout << "字符串0:" << filePath << endl;(strrchr(filePath, '\\'))[0] = 0; //是将斜杆后面的一个字符作为字符串结束符。cout << "字符串1:" << filePath << endl;
字符串0:D:\soft\file\
字符串1:D:\soft\file