如何操作cha*的字符串

wangsiyuanoo 2009-03-20 10:10:21
char*strPath;\\表示一个完整路径

如何操作这个char*来得路径的后缀名

string有封装好的搜索截取函数,但我不能用string 表示路径

就是想问char*怎么做?
...全文
136 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyldf 2009-03-20
  • 打赏
  • 举报
回复
strtok应该可以解决
yh4130a 2009-03-20
  • 打赏
  • 举报
回复
char* p = NULL;
char* pp = strPath;
while((pp = memchr(pp, '.', strlen(strPath))) != NULL)
{
p = pp++;
}
if(p != NULL) //后缀名
yh4130a 2009-03-20
  • 打赏
  • 举报
回复
写错 改了下
char* p = NULL;
char* pp = strPath;
while((pp = memchr(pp, '.', strlen(strPath))) != NULL)
{
p = pp;
}
if(p != NULL) p++;

p的位置 就是你要的后缀名
yh4130a 2009-03-20
  • 打赏
  • 举报
回复
char* p = NULL;
char* pp = NULL;
while((pp = memchr(strPath, '.', strlen(strPath))) != NULL)
{
p = pp;
}
if(p != NULL) p++;

p的位置 就是你要的后缀名
npuhuxl 2009-03-20
  • 打赏
  • 举报
回复
char *p;
int n = strlen(path);
p = path + n - 1;
while(p >= path && *p != '.') -- p;
if(p >= path) ++p;//p是后缀名的开始
else //错误
Jarrys 2009-03-20
  • 打赏
  • 举报
回复
char *strPath; \\表示一个完整路径
char* p=NULL;
while(*strpath++ !='.');//找到后缀名的起始位置
p=strpath++;//去掉‘.’
cout<<p<<endl;
tangshuiling 2009-03-20
  • 打赏
  • 举报
回复

用string也可以解决的:
string strpath="1.txt";
const char * p=strpath.substr(strpath.find(".")).c_str();
上述代码中的p即为后缀.txt
liuysheng 2009-03-20
  • 打赏
  • 举报
回复
通过指针遍历,后缀一般为三个字母...所以,遍历至倒数第4个字母....就行了,或者说,从碰到'\n'之前,三个字母,就是后缀

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧