33,311
社区成员
发帖
与我相关
我的任务
分享
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);
// 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;
}
#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;
}