请把这个字符串的文件名和路径拆分出来 char strFileName[]= "d:\\我的文档\\我的運價表.xls"; char* strPath=NULL;
char* strFile=NULL;请给出代码,并贴出结果。
看似简单的问题,实际有点复杂,请有经验的朋友分析下为什么会这样,有没什么解决办法。

解决方案 »

  1.   

    PathRemoveFileSpecA
    PathFindFileNameA
    看MSDN
      

  2.   


    #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);
    }
      

  3.   

    看到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,这样直接拆成两个字符,但是汉字里居然有 \ 这个字符,让我头大。。