分离目录路径和文件名
输入文件目录路径和文件名,要求分离成目录路径和文件名分别输出
输入格式:
例如:输入
c:\windows\winhelp.exe
输出格式:
c:\windows (目录路径)
winhelp.exe (文件名)
输入样例:
/usr/bin/man
输出样例:
/usr/bin
man
这个比较简单,思路就是把目录输入到一个数组,然后找到最后/或者\\。
代码:
#include<iostream>
using namespace std;
#include<cstring>
int main()
{
int i,j=0,n,m;
char str1[100];
gets(str1);
n=strlen(str1);
for(i=0;i<n;i++)
{
if((str1[i]=='/')||(str1[i]=='\\'))
j=i; //记录/或者\\的位置
}
m=i;
for(i=0;i<j;i++)
cout<<str1[i];
cout<<endl;
for(i=j+1;i<m;i++)
cout<<str1[i];
cout<<endl;
return 0;
}
这是改进版(有什么疑问欢迎留言,会及时回复)(代码可直接复制):
#include <iostream>
#include<string>
using namespace std;
void filename(const string & str)
{
int found=str.find_last_of("/\\");
cout<<str.substr(0,found)<<endl;
cout<<str.substr(found+1)<<endl;
}
int main()
{
string str1;
getline(cin,str1);
filename(str1);
return 0;
}