首页

文章

用C语言如何从路径名中分离文件名

发布网友 发布时间:2022-03-01 13:15

我来回答

5个回答

热心网友 时间:2022-03-01 14:44

声明一个足够长的名为fn的char型数组,调用库函数strrchr在含路径的全文件名中找到文件名前的'\',将其后的文件名拷贝到fn中即可。举例代码如下:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "string.h"
int main(void){
    char fn[30],*p;
    char pathname[80]="e:\\1\\2\\abc.dat";
          //上句假设以某种方式获得的全文件名在pathname中,"..."中只是举例
    strcpy(fn,(p=strrchr(pathname,'\\')) ? p+1 : pathname);
          //上句函数第2实参这样写以防止文件在当前目录下时因p=NULL而出错
    printf("%s\n",fn);//打出来看看
    return 0;
}

热心网友 时间:2022-03-01 16:02

void *GetFilename(char *p)
{
int x = strlen(p);
char ch = '\\';
char *q = strrchr(p,ch) + 1;

return q;
}

int main()
{
char p[]="D:\\SoftWare\\Adobe\\Photoshop5.exe";

printf("%s\n",GetFilename(p));
return 0;
}

 char p[]="D:\\SoftWare\\Adobe\\Photoshop5.exe";

中的双斜杠是赋值时用到的,如果路径名是其它方式获取到,就不需要用到双斜杠!

追问直接用strrchr函数获取 '\' 字符指针就行了?

追答是的。

热心网友 时间:2022-03-01 17:37

本来我是不想思考来百度查的,结果查出来的都不能用(-_-)....
然后就自己写了一个->
//将一个带文件名的路径分解为路径和文件名
void decomposition(const char* str,char* pname,char* fname)
{
int i;
int psize=0;//用以记录最后一个分隔符的位置(路径结束位置)
int fsize=0;//文件当前指向
/* 寻找到最后一个分隔符 */
while(str[fsize]) {
if(str[fsize]<=0x7f) { //字符
if(str[fsize]=='/'||str[fsize]=='\')
psize=fsize;
fsize++;
}else fsize+=2; //中文
}
/* 开始拷贝 */
for(i=0;i<psize;i++) pname[i]=str[i];pname[i]='\0';
for(i=psize+1,fsize=0;str[i];i++) fname[fsize++]=str[i];fname[fsize]='\0';
}

热心网友 时间:2022-03-01 19:28

你的这句话char p[]="D:\SoftWare\Adobe\Photoshop5.exe"; 里的\被编译器解析成转义字符了。

热心网友 时间:2022-03-01 21:36

char p[]="D:\SoftWare\Adobe\Photoshop5.exe";
要改成:
char p[]="D:\\SoftWare\\Adobe\\Photoshop5.exe";
谷歌浏览器怎么设置成中文_谷歌浏览器设置中文语言 【谷歌浏览器技巧】谷歌浏览器如何更改语言? 史上最全ETF全解 证券ETF是深市的吗 怎样把莲藕肉丸子做的好吃? 高三语文小说赏析小说形象分析与答题技巧 人物形象题答题技巧 借助什么分析小说的人物形象 脖子旁边疼是什么原因 在群里不是好友怎么把群里人建另一个群 蛇床子的药理作用 炒蛇床子和生蛇床子有什么区别 为什么把床头垫高点 为什么床头高点儿 为什么要给新生儿抬高床头 人脸识别打卡考勤机找哪家? 背后搞你的人什么心态 很皮的搞笑撩人句子高情商的撩人句子(82句) 恶搞爱情短信 床头挂什么财运最旺最好 床上放什么东西辟邪 道家床头挂什么画最好最旺 床头贴什么最好最旺道家 建设工程竣工后,是否必须取得《规划验收许可证》? 环评竣工验收 手机几年没用了开不了机怎么办 红烧啤酒鸡的家常做法大全怎么做好 双男主泰剧新剧推荐 2019泰剧《爱情理论》小受暗恋花心直男好友 液体卫生巾和普通卫生巾的区别是什么?液体卫生巾的优点 可水洗粘尘垫哪家好 电脑12g够用吗? 宝宝双侧肺炎病变严重吗 什么是洁净气体灭火器 2024年实用父亲节礼物推荐有哪些?(2300字选购指南) 40包速溶咖啡比对 作文请以“这样挺好”为题,写一篇记叙文或议论文,不少于800字。要求... 如何写好作文我就是这么好 惊魂未定什么意思?有什么典故? 安阳火车站到新师院北门的公交车有哪些? 安阳市公交车26从火车站发车多长时间到终点站 太仓汽车站去太仓乐遥浏河公墓坐几路公交 请问廉江市哪里有奥克斯手机专业维修店,急!! 梅赛德斯奔驰E350敞篷版的整体简介及其性能如何 员工出差前需要做什么准备工作? 用(祝愿自己生日快乐)写首藏头诗,希望有才华的人帮帮忙,谢谢了_百度... 请问做爱前吃什么药可以延长做爱时间? 我每天锻炼,然后吃什么,能延长我房事时间?现在两分钟,双方都苦恼。_百 ... 做爱前吃什么最能滋补身体 吃什么能让房事时间长些? c语言在哪里运行,怎么保存,后缀名是什么。 淘宝买家收到货物后多久不点击确认收货会自动付款? c语言在windows下如何取得机器名 C语言是在哪年发明的~? 淘宝签收后几天之内要确认收货 淘宝购物签收货物几天后钱会自动打到卖家卡里?为确认收货 准备退呢 常州有什么特产!有什么好吃的可以带回给家人吃! 常州特产是什么?我想给家里人寄回去,不知道特产是哪些,,, 常州有什么特产适合送给老人的 挂式空调拆装怎么样收氟视频 冬天怎样拆空调收氟 冬天拆空调怎么收氟 冬天拆空调时如何收氟 软考中级数据库工程师需要哪些基础? 求详细的介绍 拆空调收氟步骤是什么? 拆空调收氟怎么收, 拆空调怎样收氟? 空调拆装怎么收氟 自己拆空调怎么收氟 拆空调怎么收氟 在C语言中有那些函数名? c语言中函数名就是地址吗 鞋子白色的边泛黄了,用什么洗才能变白 c语言在屏幕上显示出学生自己的中文名字(用"*"字符显示) 鞋白边发黄咋处理变白 鞋子白边发黄怎么变白 C语言可以用来做什么? C语言的应用方向是怎样的? C语言可以做什么 C语言的应用方向? 运动鞋白边发黄怎么办有什么方法 C语言可以实现什么? ...如何让变黄的球鞋白边变白?? c语言可以干什么?详细些! 如何将发黄的鞋变白? 鞋子上的白边变黄了怎么办 鞋子的白边变黄要怎麽弄啊,怎么防止它变黄啊 鞋子是白边可是变黄了怎么变白 如何在ie浏览器上设置兼容模式 国内的建造师在国际上承认吗?如果不承认的话需要怎么考,考什么,听说有个PMP但是我不知道是什么。 项目经理的证书和建造师的证书是一个东西吗? 微信有消息免打扰 ,如果设置了,对方有显示吗?知道吗??
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com