//本篇代码都摘自(C++ STL 基础及应用)
//如有纰漏还请指正
//string字符串初始化
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s1;
string s2("hello world!");
string s3(s2);
string s4(s2,0,5); //从s2下标为零的位置起五个字符赋值给s2
string s5="en";
string s6=s2+"haha"; //这个地方应该注意 如果是“haha”在前s2在后就会报错
string s7="haha"+s2; //我以为是错误的,但是亲测居然可行(可把我气坏了叉会腰!!!!)
//这可能是因为编程环境不同导致的,我是用的是codeblocks 大家可以自己测试一下看看
cout<<s4<<endl; //hello
cout<<s6<<endl; //hello world!haha
cout<<s7<<endl;
return 0;
//如有纰漏还请指正
//string字符串初始化
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s1;
string s2("hello world!");
string s3(s2);
string s4(s2,0,5); //从s2下标为零的位置起五个字符赋值给s2
string s5="en";
string s6=s2+"haha"; //这个地方应该注意 如果是“haha”在前s2在后就会报错
string s7="haha"+s2; //我以为是错误的,但是亲测居然可行(可把我气坏了叉会腰!!!!)
//这可能是因为编程环境不同导致的,我是用的是codeblocks 大家可以自己测试一下看看
cout<<s4<<endl; //hello
cout<<s6<<endl; //hello world!haha
cout<<s7<<endl;
return 0;
}
//string迭代器
//迭代器是什么鬼? 额 就是指针啦!
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s1="how are you !";
string s2(s1.begin(),s1.end()); //s1.begin()它指向的是s1的头指针即h的位置,s1.end()
string s3(s1.begin()+4,s1.begin()+7); //指向!后面的地址(以上都是猜想下面验证)
cout<<*s1.begin()<<endl; // h
cout<<*s2.end()<<endl; //啥都没显示 但是编译通过了 怎么回事
cout<<*(s2.end()-1)<<endl; //这里输出的是一个感叹号 ! 所以end()指向的是/0的位置也就是说上面的说法是对的
cout<<*(s2.end()+5)<<endl; //我靠竟然没报错!!!!!!! 为毛没报错 为毛 谁知道请告诉我一声
cout<<s2<<endl; //难道还是cb太牛逼了????
cout<<s3<<endl;
return 0;
}