字符串替换问题~~~

「已注销」 2005-12-09 01:57:21
char windir[256];
GetWindowsDirectory(windir,256);
printf("%s",windir);

他输出的是c:\windows 到ShellExecute里面要求的是c:\\windows\\这样的写法 如何转换?
...全文
127 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2005-12-09
  • 打赏
  • 举报
回复
喔~~原来是这样~~~ 这个东西原来没有玩过~~ 今天长见识了~~谢谢楼上的~~~
Maconel 2005-12-09
  • 打赏
  • 举报
回复
在程序里写的时候是'\\',但是显示出来自然就是'\'。
同样,如果显示出来是'\',那么程序里其实已经是'\\'了。
这个东西叫转义符。
所以GetWindowsDirectory得到的路径,直接使用就可以,顶多在最后加一个字符'\\'。
strcat(windir, "\\");
lhj 2005-12-09
  • 打赏
  • 举报
回复
用土办法,自己替换咯

char windir2[256];
char *p = windir;
char *p2 = windir2;
while(*p != 0)
{
*p2 = *p;
p2++;
if(*p == '\\')
{
*p2 = '\\';
p2++;
}
p++;
}
*p2 = '\\';
p2++;
*p2 = '\\';
p2++;
*p2 = 0;
h2plus0 2005-12-09
  • 打赏
  • 举报
回复
char buf[256];
sprintf(buf, "%s\\",windir);

更好的办法是:

#include <string>
using namespace std;

string s = buf+ "\\";

建议楼主看一下 stl

13,873

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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