找宝游戏:把文件名和和路径拆分出来

ljyit 2012-03-14 07:27:52

请把这个字符串的文件名和路径拆分出来

char strFileName[]= "d:\\我的文档\\我的運價表.xls";

char* strPath=NULL;
char* strFile=NULL;

请给出代码,并贴出结果。


看似简单的问题,实际有点复杂,请有经验的朋友分析下为什么会这样,有没什么解决办法。
...全文
192 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljyit 2012-03-15
  • 打赏
  • 举报
回复
看到CharNext(),万分感谢。

而我的代码总是错的:

char strFileName[]= "d:\\我的文档\\我的運價表.xls";

char* strPath=NULL;
char* strFile=NULL;

int nLen=strlen(strFileName);
while(--nLen)
{
if(strFileName[nLen]=='\\')
{
strFileName[nLen]='\0';

strFile=strFileName+nLen+1;
strPath=strFileName;
break;
}
}

我的写法是从右边找 \ 遇到第一个就把它换成 0,这样直接拆成两个字符,但是汉字里居然有 \ 这个字符,让我头大。。



[Quote=引用 4 楼 ybjx111 的回复:]

C/C++ code

#include "stdio.h"
#include "windows.h"
void main()
{
char strFileName[]= "d:\\我的文档\\我的運價表.xls";

char* strPath=NULL;
char* strFile=NULL;

char *ch1,*ch2;
ch1=str……
[/Quote]
ljyit 2012-03-15
  • 打赏
  • 举报
回复
楼上误会了,这种代码又没什么难度,但我为什么说要找宝,其实是跟这个字符串有关的,常规代码遇到这个字符串会有问题。

论坛太多人只动嘴不动手,从不自己实践一下,我只是想知道原因及解决办法。
向立天 2012-03-15
  • 打赏
  • 举报
回复
我觉得你是不是自己先写一个然后大家讨论一下
你这样感觉就是在找免费劳动力
ybjx111 2012-03-15
  • 打赏
  • 举报
回复

#include "stdio.h"
#include "windows.h"
void main()
{
char strFileName[]= "d:\\我的文档\\我的運價表.xls";

char* strPath=NULL;
char* strFile=NULL;

char *ch1,*ch2;
ch1=strFileName;
while(1)
{
ch1=CharNext(ch1);
if(*ch1=='\\')
{
ch2=ch1;
}
else if(*ch1==0)
{
break;
}

}
if(ch2!=NULL)
{
strPath=strFileName;
*ch2=0;
strFile=ch2+1;
}
printf("%s..%s",strPath,strFile);
}
ljyit 2012-03-14
  • 打赏
  • 举报
回复
需要自己写代码来拆分,并不是系统函数。
Eleven 2012-03-14
  • 打赏
  • 举报
回复
_tsplitpath
zgl7903 2012-03-14
  • 打赏
  • 举报
回复
PathRemoveFileSpecA
PathFindFileNameA
看MSDN

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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