永发信息网

用C/C++编写一个文件路径

答案:5  悬赏:60  手机版
解决时间 2021-03-22 23:59
用C/C++编写一个文件路径
最佳答案
c从完整路径分离 路径名,文件名,扩展名

void splitname(const char *szfullfilename, char *szpathname, char *szfilename, char *szextname);

szfullfilename:完整文件名
szpathname:以 \ 结尾的路径名
szfilename:文件名
szextname:扩展名

#include "stdio.h"
#include "conio.h"

void splitname(const char *szfullfilename, char *szpathname, char *szfilename, char *szextname);

int main(void)
{
char szfullfilename[255] = "C:\\My Documents\\Software Test 1.00.doc";
char szpathname[255];
char szfilename[255];
char szextname[255];

splitname(szfullfilename, szpathname, szfilename, szextname);

printf("%s\n", szfullfilename);
printf("path: %s\n", szpathname);
printf("file: %s\n", szfilename);
printf("ext: %s\n", szextname);

}

void splitname(const char *szfullfilename, char *szpathname, char *szfilename, char *szextname)
{
int i, j;

i = 0;
while (szfullfilename[i] != '\0')
i++;
while (szfullfilename[i] != '.')
i--;

j = 0;
i++;
while((szextname[j] = szfullfilename[i]) != '\0')
{
i++;
j++;
}
i -= j;
while (szfullfilename[i] != '\\')
i--;

for (j = 0; j <= i; j++)
{
szpathname[j] = szfullfilename[j];
}
szpathname[j] = '\0';

j = 0;
i++;
while((szfilename[j] = szfullfilename[i]) != '\0')
{
i++;
j++;
}

}

运行结果:

C:\My Documents\Software Test 1.00.doc
path: C:\My Documents\
file: Software Test 1.00.doc
ext: doc
全部回答
program in C:

#include
#include

void main()
{
char s[]="C:\\MyDocuments\\Software\\Test 1.00.doc";
char file_name[20],ext_name[20],dir[80];
int L,i,j,k;
L = strlen(s);

for (i=0;iif (s[i]=='\\') j=i;
if (s[i]=='.') k=i;
};
dir[j]='\0';
for (i=0;ifor (i=j+1;ifile_name[k-j]='\0';
for (i=k+1;i
printf("DIR -- %s\n",dir);
printf("File Name -- %s\n",file_name);
printf("Ext Name -- %s\n",ext_name);
system("pause");
}
C#实现也就3句话。
system("md C:\MyDocuments");
然后
ofstream fout = fout.open("C:\\MyDocuments\\Software Test1.00.txt");
就可以了
不明白可以加我百度HI。

把字符串保存到一个string文件中。
然后用while分段循环读取,以'\0'为结束点。
在在这个循环中内嵌一个循环。
以‘\’为条件,并保存这个字符的结束点。
然后在跟据外部循环判断每个目录。

在C/C++中实现是有点麻烦。在C#中比较简单实现。
不明白的加我百度HI吧。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
是在文言文中有哪些意思
A网B网C网最多可以有多少网络,为什么
4脚是负12v电源供电的八脚集成块是什么型号
上海打折网
—What’s wrong with you yesterday?—When
丹麦的货币叫什么?
形容烈士的词语
骆驼商务休闲鞋地址在什么地方,想过去办事
天津河西区图书大厦附近哪里有佛教的寺庙?最
新买的红米note3手机无法更新系统,就是一直
DNF异次元裂缝打到的橙装在决斗场没效果
DB2 V9.7存储过程调试
束腹带对于一般减肥者什么时候用最好?晚上睡
(763+527)+473=763+(________+________)
求陈毅《秋菊》赏析
推荐资讯
爱你想你的句子,以前追求过,想追求第二次的句
卡露丝洗衣店怎么去啊,有知道地址的么
是不是每个残疾人都要过抑郁症这关
成语水秀山青有没有
定日县有几个乡
下图为临时装片制作过程示意图,制作顺序正确
电脑开机10分钟关机。把机箱平放电脑正常工作
李易峰取一个口号简单一点
关于车城网,知道的人多吗?值得信赖不?
小明在帮爸爸用水枪喷水洗车时,发现当水喷出
单选题ClO2是生产饮用水的新一代消毒剂.从物
红米note移动4g版无法开机怎么刷机
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?