游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5209|回复: 11

求C++的子符串替换代码。

[复制链接]

11

主题

145

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2007-9-2 15:59:00 | 显示全部楼层 |阅读模式
已知一个字符串str1
char str1[50];
里面包含了不定数量的符号\ 现在想把里面所有的\换成\\,如:
"c:\dos\cmd\1.txt"转换成"c:\\dos\\cmd\\1.txt"

求转换的代码或函数,不允许使用CString类,谢谢。

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2007-9-2 18:30:00 | 显示全部楼层

Re:求C++的子符串替换代码。

STL
或自己写,简单的再开一个数组,遍历、判断即可。

86

主题

2251

帖子

2384

积分

金牌会员

Rank: 6Rank: 6

积分
2384
QQ
发表于 2007-9-3 00:10:00 | 显示全部楼层

Re:求C++的子符串替换代码。

我想,可能你把“\”替换成“/”就能达到目的

103

主题

1432

帖子

1458

积分

金牌会员

Rank: 6Rank: 6

积分
1458
QQ
发表于 2007-9-3 00:54:00 | 显示全部楼层

Re:求C++的子符串替换代码。


c++ 标准库的string 确实比较弱。
好多算法都要自己写。

0

主题

7

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2007-9-3 23:20:00 | 显示全部楼层

Re:求C++的子符串替换代码。

我是新手,希望大家多多帮助我。谢谢!
以下是我写的代码,请大家指教。
#include<iostream.h>
const MAX=50;
void change(char str1[MAX]);
void main()
{
char str1[MAX]={'c',':',char(92),'d','o','s',char(92),'c','m','d',char(92),'1','.','t','x','t'};
cout<<str1<<endl;
change(str1);
}
void change(char str1[MAX])
{int i=0,t=0;char str[MAX*2];
while(str1!='\0')
{if(int(str1)==92)
{str[t]=char(92);t++;
str[t]=char(92);t++;}
else
{str[t]=str1;t++;}
i++;}str[t]='\0';
cout<<"新字符串为"<<str<<endl;
}

11

主题

145

帖子

176

积分

注册会员

Rank: 2

积分
176
 楼主| 发表于 2007-9-4 16:10:00 | 显示全部楼层

Re:求C++的子符串替换代码。

呵呵,谢谢了哈。
可惜我不用这代码了,因为开始时我以为VB只能识别单斜杠的路径,所以用VB写出的文本文件要想让VC识别就得在VC下用函数变成双斜杠;但是后来经实验,VB对双斜杠路径仍然能识别,即:VB可以直接写出双斜杠路径,而且在VC中不用变换就可以识别,所以就以双斜杠路径作为两者的数据交换标准啦。
在VC上,我是菜鸟,多谢大家对我的支持。

86

主题

2251

帖子

2384

积分

金牌会员

Rank: 6Rank: 6

积分
2384
QQ
发表于 2007-9-4 18:45:00 | 显示全部楼层

Re:求C++的子符串替换代码。

你试试VB支不支持“/”

103

主题

1432

帖子

1458

积分

金牌会员

Rank: 6Rank: 6

积分
1458
QQ
发表于 2007-9-5 11:26:00 | 显示全部楼层

Re:求C++的子符串替换代码。

c++的双斜杠是字符转义序列。实际是单斜杠。

\n 这是实际是换行
\t 这是Tab
\" 这是双引号

所以你在c++字面字符串写"c:\\hello.txt" 实际等于 “c:\hello.txt”。c++一样是使用单斜杠表示路径,只是写法上需要用\

0

主题

7

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2007-9-5 16:46:00 | 显示全部楼层

Re:求C++的子符串替换代码。

c++里面写成 "\\"或者"/"就行了~
我的代码char str1[MAX]={'c',':',char(92),'d','o','s',char(92),'c','m','d',char(92),'1','.','t','x','t'};纯粹是为了完成题目的写法 -_-!

18

主题

82

帖子

86

积分

注册会员

Rank: 2

积分
86
发表于 2007-9-19 11:02:00 | 显示全部楼层

Re:求C++的子符串替换代码。

不知道char(92)是什么意思?好象是代表'\',但不知道会有这种用法?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-21 13:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表