/*
我知道好多教科书上说的都是在c++中两个字符串比如s1,s2连接即s1+s2的返回值为指向s1首字符的指针,且s1为原来添加上s2的结果(好像这也是c++标准),可是我在ubuntu下用gcc编译下面的程序结果不是这样的,怎么回事阿?哪位解释下,gcc不是比vc还标准吗?!
*/
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
string a,s1="Hello ";
string s2="123";
a=s1;
cout<<((a==s1)?"":"not ")<<"equel"<<endl;
cout<<a+s2<<endl;
cout<<"before:"<<a<<endl;//主要就是这里要解释!
reverse(a.begin(),a.end());
cout<<a<<endl;
cout<<a.replace(0,9,9,'c')<<endl;
cout<<((s1.find("ell")!=-1)?"":"not ")<<"equel"<<endl;
cout<<((s1.find('c')!=-1)?"":"not ")<<"equel"<<endl;
return 0;
}
输出的结果:
equel
Hello 123
before:Hello //这里!!
olleH//当然还这里!
ccccccccc
equel
not equel
c++字符串来连接后的返回值问题
-
- 帖子: 6
- 注册时间: 2008-09-14 15:35
-
- 帖子: 308
- 注册时间: 2008-06-23 14:42
- maninred
- 帖子: 164
- 注册时间: 2007-08-24 20:16
- 来自: Hangzhou, China
- 联系:
-
- 帖子: 6
- 注册时间: 2008-09-14 15:35
是钱能课本出错了!!
现在明白了,结果就是满足标准的,是钱能的书(c++程序设计教程 第二版)误导了,书里p80有错,注意程序结尾的一句话(“其运行结果与f0304.cpp相同”)!
- maninred
- 帖子: 164
- 注册时间: 2007-08-24 20:16
- 来自: Hangzhou, China
- 联系:
Re: 是钱能课本出错了!!
国内的书挺害人。看些国外的Cpp经典吧。我是小超子 写了:现在明白了,结果就是满足标准的,是钱能的书(c++程序设计教程 第二版)误导了,书里p80有错,注意程序结尾的一句话(“其运行结果与f0304.cpp相同”)!
- 自由建客
- 帖子: 13468
- 注册时间: 2008-07-30 23:21
- 系统: Debian stable AMD64
Re: 是钱能课本出错了!!
maninred 写了:国内的书挺害人。看些国外的Cpp经典吧。
-
- 帖子: 6
- 注册时间: 2008-09-14 15:35
Re: 是钱能课本出错了!!
呵呵偷懒,国外的书老长,先学国内的有个基础再看。自由建客 写了:maninred 写了:国内的书挺害人。看些国外的Cpp经典吧。
顺便,我还给钱能发了email,尽然回复了,而且回的挺快,主要是出版社作了修改了,结果错了。
- wth123456
- 帖子: 234
- 注册时间: 2006-12-07 17:32
Re: c++字符串来连接后的返回值问题
错了,应该是
中国人写的c++的书可以算钱能的最好了,可以做个入门。
代码: 全选
#include <iostream>
#include <string>
using namespace std;
int main() {
string s1="Hello ";
string a="123";
s1+=a;
cout<<s1;
return 0;
}
十年磨一剑,霜刃未曾试。今日把示君,谁有不平事?