免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 32557 | 回复: 12
打印 上一主题 下一主题

[C++] 求助:C++里我输出的string里面有双引号,怎么办啊 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-07 12:08 |只看该作者 |倒序浏览
我在C++ 程序里对字符串操作时,字符串里面必须有双引号,比如说我要处理的内容里有这样一句话
He said: "Hello";这个字符串里Hello加双引号,类似这样的很多,都要写到一个文件里去的。我这样做的,可是不行:
string s="He said: "
s=s+"\""+"Hello"+"\"";

编译通不过,那位高手指点一下,谢谢!

论坛徽章:
0
2 [报告]
发表于 2007-05-07 12:10 |只看该作者
原帖由 anewbier 于 2007-5-6 20:08 发表
我在C++ 程序里对字符串操作时,字符串里面必须有双引号,比如说我要处理的内容里有这样一句话
He said: "Hello";这个字符串里Hello加双引号,类似这样的很多,都要写到一个文件里去的。我这样做的,可 ...


string s = "He said: \"Hello\"";

论坛徽章:
0
3 [报告]
发表于 2007-05-07 12:24 |只看该作者

回复 2楼 emacsnw 的帖子

谢谢emacsnw你的回复,但是这个并没有解决我的问题。我因为中间要对字符串操作,很多地方需要临时加引号,而不能一开始就给它赋值。字符串是由很多片断拼凑起来的,这些片断里有的要加双引号。

论坛徽章:
0
4 [报告]
发表于 2007-05-07 12:41 |只看该作者
硬加上去;

char c[] ="...";

c[x] = 0x22;

论坛徽章:
0
5 [报告]
发表于 2007-05-07 19:23 |只看该作者
原帖由 anewbier 于 2007-5-7 12:08 发表
我在C++ 程序里对字符串操作时,字符串里面必须有双引号,比如说我要处理的内容里有这样一句话
He said: "Hello";这个字符串里Hello加双引号,类似这样的很多,都要写到一个文件里去的。我这样做的,可 ...



我的通过了

论坛徽章:
0
6 [报告]
发表于 2007-05-07 19:30 |只看该作者
题外话:应作
He said, "hello!"

He said: "Hello!"
不符合英语中标点符号和大小写的用法。

论坛徽章:
0
7 [报告]
发表于 2007-05-07 19:33 |只看该作者
"\""+"Hello"+"\""
这种用法本来就不正确,这里实际上变成了字符指针的加操作,字符指针没有被解释为 string 类,所以不可行

或许你想知道的是这种用法:
原先用的加号去掉,像这样
"\"" "Hello" "\""

就可以了。

论坛徽章:
0
8 [报告]
发表于 2007-05-07 20:13 |只看该作者
那就试一下

s = s + string("\"") + string("Hello") + string("\"");

如果还是不能通过,那就是库的问题。也可以试着使用 string 类的成员函数:assign, insert 等

此外,string s="He said: "; 改成 string s("He said: "); 效率较高。

论坛徽章:
0
9 [报告]
发表于 2007-05-07 20:49 |只看该作者

回复 8楼 antigloss 的帖子

谢谢楼上各位师兄。eugnal 的解释太对了。我用antigloss 的方法解决了我的问题。

论坛徽章:
0
10 [报告]
发表于 2007-05-08 20:26 |只看该作者
我的怎么通过了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP