CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

如何连接两个字符串?

楼主ShaB(ShaB)2003-11-02 13:45:15 在 VC/MFC / 基础类 提问

void   CSBPlayerDlg::OnmnuFileOpen()    
  {  
      CString   sMusicFileList;  
      CFileDialog   dlgOpenFile(TRUE,NULL,"*.*",OFN_ALLOWMULTISELECT,NULL,NULL);  
      if(dlgOpenFile.DoModal()==IDOK){  
        //sMusicFileList=dlgOpenFile.GetPathName()+"\"+dlgOpenFile.GetFileName();  
      }  
  }  
   
  上面那个sMusicFileList,是用打开文件路径加文件名连接起来的字符串,请问VC中如何表示呢? 问题点数:0、回复次数:9Top

1 楼Sword_Sharp(多米诺)回复于 2003-11-02 13:48:42 得分 0

在CString中重载了操作符   “+”   你可以直接将两个字符串加在一起,如果事路径名要注意  
  “/”用“//”替换,否则他后边的字符会被转译Top

2 楼carbon107(<软件开发思想.h>)回复于 2003-11-02 13:53:35 得分 0

strcat()Top

3 楼Sword_Sharp(多米诺)回复于 2003-11-02 13:57:20 得分 0

不好意思,没有仔细看问题。VC中CFileDialog好像只能获取带路径的文件名。你如果想把路径和文件名分开只能自己搞,我这里有个函数可以完成这个工作:  
  BOOL   SplitFileName(const   TCHAR   *filename,   TCHAR   *path,   TCHAR   *name)  
  {  
  TCHAR   chTmp[1025];  
  TCHAR   *pchp,   *pchn;  
  size_t   size;  
  if(filename   ==   NULL   ||   path   ==   NULL   ||   name   ==   NULL)  
  return   FALSE;  
  pchp   =   _tcschr(filename,   _T(':'));  
  if(pchp   !=   NULL)  
  {  
  pchp--;  
  _tcscpy(chTmp,   pchp);  
  }  
  else  
  {  
  _tcscpy(path,   _T(""));  
  _tcscpy(name,   _T(""));  
  return   FALSE;  
  }  
   
  pchn   =   _tcsrchr(chTmp,   _T('\\'));  
  if(pchn   !=   NULL)  
  _tcscpy(name,   pchn   +   1);  
  else  
  {  
  _tcscpy(path,   _T(""));  
  _tcscpy(name,   _T(""));  
  return   FALSE;  
  }  
  size   =   _tcslen(chTmp)   -   _tcslen(pchn);  
  if(size   <=   0)  
  {  
  _tcscpy(path,   _T(""));  
  _tcscpy(name,   _T(""));  
  return   FALSE;  
  }  
  _tcsncpy(path,   chTmp,   size   +   1);  
  path[size   +   1]   =   _T('\0');  
  return   TRUE;  
  }  
  Top

4 楼cdwy411(VC$ORACLE)回复于 2003-11-02 14:29:27 得分 0

CString+Ctring   ;  
  strcat(char   *,char   *);Top

5 楼ShaB(ShaB)回复于 2003-11-02 14:52:56 得分 0

strcat(char   *,char   *);  
  两个参数都是字符串指针,那我连接时是不是应该这样做:  
  CString   *myMessage;  
  CFileDialog   myFile;  
  if(myFile.DoModal()==IDOK){  
      strcat(myMessage,&myFile.GetPathName());  
      strcat(myMessage,&myFile.GetFileName());  
  }  
   
  文件名跟路径分开取得,不过我的问题主要是搞不搞连接字符串的问题.能帮我持看这个程序解释一下吗?就上面这几句子。Top

6 楼ablefirst(able)回复于 2003-11-02 15:09:44 得分 0

打开文件对话框,取得路径和文件名,合并到myMessagekTop

7 楼ShaB(ShaB)回复于 2003-11-02 15:15:26 得分 0

像上面那样来用strcat()函数可以吗?我这里是通不过的啊......Top

8 楼yifeng_ch(yifeng)回复于 2003-11-02 16:15:59 得分 0

CFileDialog::GetPathName    
   
  Call   this   function   to   retrieve   the   full   path   of   the   file   entered   in   the   dialog   box.   The   path   of   the   filename   includes   the   file’s   title   plus   the   entire   directory   path.   For   example,   GetPathName   will   return   "C:\FILES\TEXT.DAT"   for   the   file   C:\FILES\TEXT.DAT.  
   
  Top

9 楼keiven()回复于 2003-11-02 17:17:19 得分 0

把两个字符串加起来啊。CString   类重载了'+'运算符。Top

相关问题

  • 如何连接两个字符串?
  • 如何连接字符串?
  • 两个char* 声明的字符串如何连接呢?
  • 两个BSTR的字符串如何连接起来?
  • 如何写连接字符串?
  • 请问,如何连接字符串
  • 连接2个字符串如何写?
  • 如何将一个字符串分解成两个字符串?
  • 关于两个字符串连接
  • 两个字符串连接的问题

关键词

  • 文件名
  • null
  • pchp
  • 字符串
  • dlgopenfile
  • pchn
  • tcscpy
  • chtmp
  • smusicfilelist
  • tchar

得分解答快速导航

  • 帖主:ShaB

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo