int getFileName(const string &pathName, string &name) { char tmpName[128] = {0};//保存临时的文件名 int n = 0;//记录tmpName中的位置 //先获得文件的完整名字,包括后缀 for(unsigned int i = 0; i < pathName.size(); i++) { if('/' == pathName.c_str()[i])//遇到分隔符 { n = 0;//还原 continue; } tmpName[n++] = pathName.c_str()[i];//复制字符 } tmpName[n] = '\0';//加入结尾 if(strlen(tmpName) == 0)//坑爹阿!!竟然没找到 return -1; //再截去后缀 for(int i = 0; i < n; i++) { if('.' == tmpName[i])//找到拉 { tmpName[i] = '\0';//加入结尾就行了 break; } } if(strlen(tmpName) == 0)//又坑爹拉!!文件名竟然以‘.’为开头 return -1; name = tmpName;//赋值 return 0; } 这么一简单的功能竟然写得这样繁锁,真是个人才