字符串问题(新手请教)

cheng20100915 2010-06-30 05:53:34
char *path="d:\\root\\dest\a.txt";

要想获取a.txt之前的路径
即: d:\\root\\dest

如何进行字符串截取?
请大侠指教.
...全文
151 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
沭水河畔 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yinlijun2001 的回复:]

用这个函数 strrchr
方法就不累述了
[/Quote]
兄弟说的极是,帮你实现了。

char *path="d:\\root\\dest\\a.txt";
char dst[20];
char c='\\';
memset(dst,0,sizeof(dst));
strncpy(dst,path,(strrchr(path,c)-path));
puts(dst);
太乙 2010-06-30
  • 打赏
  • 举报
回复
// string::find_last_of
#include <iostream>
#include <string>
using namespace std;

void SplitFilename (const string& str)
{
size_t found;
cout << "Splitting: " << str << endl;
found=str.find_last_of("/\\");
cout << " folder: " << str.substr(0,found) << endl;
cout << " file: " << str.substr(found+1) << endl;
}

int main ()
{
string str1 ("/usr/bin/man");
string str2 ("c:\\windows\\winhelp.exe");

SplitFilename (str1);
SplitFilename (str2);

return 0;
}
wade_2003 2010-06-30
  • 打赏
  • 举报
回复
用find_first_of()和find_last_of()这两个函数试试
yinlijun2001 2010-06-30
  • 打赏
  • 举报
回复
用这个函数 strrchr
方法就不累述了
cattycat 2010-06-30
  • 打赏
  • 举报
回复
d:\\root\\dest\\a.txt吧
从最右边开始找\找到后,指针减去两个位置,然后从头开始到这个位置就是你想要的了。
yitaohust 2010-06-30
  • 打赏
  • 举报
回复
很奇怪,为什么a.txt前面就是“\”了呢?应该都是要"\\"的吧,转义字符。
fanster28_ 2010-06-30
  • 打赏
  • 举报
回复
#include<stdio.h>
#include <string.h>
int main()
{
char *path="d:\\root\\dest\\a.txt";
char dir[120];
int len=strlen(path);
int i;
for (i=len-1;i>=0;--i)
if (path[i]=='\\')
break;
if (i>=0) {
dir[i+1]='\0';
strncpy(dir,path,i+1);
printf("%s",dir);
}
return 0;
}
fanster28_ 2010-06-30
  • 打赏
  • 举报
回复
find the last charactor '\'
DontKissBossAss 2010-06-30
  • 打赏
  • 举报
回复
char pos = null
while(pos =strstr("\\")!= 0)
path 到pos之间的东西就是目录路径
zhangweiit 2010-06-30
  • 打赏
  • 举报
回复
当然,手动去算这个13,是不实际
你可以写个strpos函数,去得到a.txt的位置
zhangweiit 2010-06-30
  • 打赏
  • 举报
回复
char *src = "d:\\root\\dest\a.txt";
char dest[50] = {0};
strncpy(dst,src,13);
printf("%s",dest);

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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