string的用法
2016-07-17 11:30
330 查看
关于string的用法我也是借鉴了别人的,然后在例子后面做了比较详细的解释,string果然很强大
1.string字符串
#include <iostream>
#include<string>
using namespace std;
int main()
{
string str1 ="wake me up when the September ends";
string str2 ("my heart will go on");
string str3 (str1,5,2); //从0数第5个字母开始的连续两个字母 me
string str4 (str2,3,5); //从0数第3个字母开始的连续五个字母 heart
char ch_music[]={"Good-boy"};
string str5=ch_music; //Good-boy
string str6 (ch_music); //Good-boy
string str7 (ch_music,4); //Good
string str8 (10,'i'); //十个i
string str9 (ch_music+3,ch_music+6); //d-b
cout<<str3<<endl<<str4<<endl<<str5<<endl<<str6<<endl<<str7<<endl<<str8<<endl<<str9<<endl;
getchar();
return 0;
}
2 拼接字符串,赋值
#include <iostream>
#include<string>
using namespace std;
int main()
{
string str1 ="wake me up ";
string str2 ="when the September ends";
string str =str1+str2;
str1+=str2;
str.assign("see you again"); //重新赋值
str.append("Good time"); //append函数是向string 的后面追加字符或字符串
str.insert(13,"!!!");//在指定位置插入字符
cout<<str1<<endl<<str<<endl;
getchar();
return 0;
}
3 访问操作符 string可以按数组的方式,以下标来访问[b]还可以用at()函数访问指定的字符[/b]
#include <iostream>
#include<string>
using namespace std;
int main()
{
string str1 ="Good time";
cout<<str1[3]; //从零开始数第四个字母 d
cout<<str1.at(3); //从零开始数第四个字母 d 两行的效果一样
string buff;
getline(cin,buff); //输入一行字符,赋值给buff
getline(cin,buff,'!'); //输入一行字符,赋值给buff,以 ! 结束,结束符可以自己定义
cout<<buff<<endl;
getchar();
return 0;
}
4 可以把string理解为一个特殊的容器,容器中装的是字符
#include <iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string str;
cin>>str;
string::iterator itstr=str.begin(); //定义一个容器名 输入的字符第一个字母赋值给str.begin()
for(;itstr!=str.end();itstr++) //str.end()="/0"
{
cout<<*itstr; //输出字符
}
sort(str.begin(),str.end()); //排序 要头文件 algorithm
cout<<str<<endl;
return 0;
}
5 string的比较操作,按字符在字典中的顺序进行逐一比较
#include <iostream>
#include<string>
using namespace std;
int main()
{
string str1="good";
if(str1<"hello")
{
cout<<"good小于hello"<<endl;
}
string str2="anhui";
string str3="hunan";
string str4="nanjing";
if(str2<=str3 || str2==str4)
{
cout<<"安徽-南京-湖南"<<endl;
}
cout<<str2.compare("anhui")<<endl; //相等返回 0 ,大于返回正数,小于返回负数
cout<<str2.compare(str3)<<endl;//相等返回 0 ,大于返回正数,小于返回负数
cout<<str3.compare(2,2,str4,2,2)<<endl;//相等返回 0 ,大于返回正数,小于返回负数 str3中的na与str4中的nj比较
cout<<str4.compare(3,4,"aaaa",4)<<endl;//相等返回 0 ,大于返回正数,小于返回负数 jing与aaaa比较
return 0;
}
6 查找 find rfind string中除了find、rfind,还有find_first_of等函数
#include <iostream>
#include<string>
using namespace std;
int main()
{
string str1="wake me up when the September ends";
string::size_type position;
position=str1.find("when"); //find函数返回 when 在str1中第一次出现的下标位置
if(position!=str1.npos) //如果没有找到,返回npos,这个值很大4294967295
{
cout<<"第一次出现的下标是"<<position<<endl;
}
position=str1.find("me",6); //从字符串str1下标 6开始,查找字符串 you ,返回you在str1中的下标
<
4000
span style="white-space:pre;">//如果找不到则显示出npos
cout<<"str1.find(me,6)is:"<<position<<endl;
string substr="m";
position=0;
int i=1;
while((position=str1.find_first_of(substr,position))!=string::npos)
{
cout<<"position"<<i++<<" : "<<position<<endl; //查找str1中substr中m出现的所有位置
position++;
}
string flag="w";
position=str1.rfind(flag); //反向查找,flag在str1中最后出现的位置
cout<<"str1.rfind(flag):"<<position<<endl;
return 0;
}
1.string字符串
#include <iostream>
#include<string>
using namespace std;
int main()
{
string str1 ="wake me up when the September ends";
string str2 ("my heart will go on");
string str3 (str1,5,2); //从0数第5个字母开始的连续两个字母 me
string str4 (str2,3,5); //从0数第3个字母开始的连续五个字母 heart
char ch_music[]={"Good-boy"};
string str5=ch_music; //Good-boy
string str6 (ch_music); //Good-boy
string str7 (ch_music,4); //Good
string str8 (10,'i'); //十个i
string str9 (ch_music+3,ch_music+6); //d-b
cout<<str3<<endl<<str4<<endl<<str5<<endl<<str6<<endl<<str7<<endl<<str8<<endl<<str9<<endl;
getchar();
return 0;
}
2 拼接字符串,赋值
#include <iostream>
#include<string>
using namespace std;
int main()
{
string str1 ="wake me up ";
string str2 ="when the September ends";
string str =str1+str2;
str1+=str2;
str.assign("see you again"); //重新赋值
str.append("Good time"); //append函数是向string 的后面追加字符或字符串
str.insert(13,"!!!");//在指定位置插入字符
cout<<str1<<endl<<str<<endl;
getchar();
return 0;
}
3 访问操作符 string可以按数组的方式,以下标来访问[b]还可以用at()函数访问指定的字符[/b]
#include <iostream>
#include<string>
using namespace std;
int main()
{
string str1 ="Good time";
cout<<str1[3]; //从零开始数第四个字母 d
cout<<str1.at(3); //从零开始数第四个字母 d 两行的效果一样
string buff;
getline(cin,buff); //输入一行字符,赋值给buff
getline(cin,buff,'!'); //输入一行字符,赋值给buff,以 ! 结束,结束符可以自己定义
cout<<buff<<endl;
getchar();
return 0;
}
4 可以把string理解为一个特殊的容器,容器中装的是字符
#include <iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string str;
cin>>str;
string::iterator itstr=str.begin(); //定义一个容器名 输入的字符第一个字母赋值给str.begin()
for(;itstr!=str.end();itstr++) //str.end()="/0"
{
cout<<*itstr; //输出字符
}
sort(str.begin(),str.end()); //排序 要头文件 algorithm
cout<<str<<endl;
return 0;
}
5 string的比较操作,按字符在字典中的顺序进行逐一比较
#include <iostream>
#include<string>
using namespace std;
int main()
{
string str1="good";
if(str1<"hello")
{
cout<<"good小于hello"<<endl;
}
string str2="anhui";
string str3="hunan";
string str4="nanjing";
if(str2<=str3 || str2==str4)
{
cout<<"安徽-南京-湖南"<<endl;
}
cout<<str2.compare("anhui")<<endl; //相等返回 0 ,大于返回正数,小于返回负数
cout<<str2.compare(str3)<<endl;//相等返回 0 ,大于返回正数,小于返回负数
cout<<str3.compare(2,2,str4,2,2)<<endl;//相等返回 0 ,大于返回正数,小于返回负数 str3中的na与str4中的nj比较
cout<<str4.compare(3,4,"aaaa",4)<<endl;//相等返回 0 ,大于返回正数,小于返回负数 jing与aaaa比较
return 0;
}
6 查找 find rfind string中除了find、rfind,还有find_first_of等函数
#include <iostream>
#include<string>
using namespace std;
int main()
{
string str1="wake me up when the September ends";
string::size_type position;
position=str1.find("when"); //find函数返回 when 在str1中第一次出现的下标位置
if(position!=str1.npos) //如果没有找到,返回npos,这个值很大4294967295
{
cout<<"第一次出现的下标是"<<position<<endl;
}
position=str1.find("me",6); //从字符串str1下标 6开始,查找字符串 you ,返回you在str1中的下标
<
4000
span style="white-space:pre;">//如果找不到则显示出npos
cout<<"str1.find(me,6)is:"<<position<<endl;
string substr="m";
position=0;
int i=1;
while((position=str1.find_first_of(substr,position))!=string::npos)
{
cout<<"position"<<i++<<" : "<<position<<endl; //查找str1中substr中m出现的所有位置
position++;
}
string flag="w";
position=str1.rfind(flag); //反向查找,flag在str1中最后出现的位置
cout<<"str1.rfind(flag):"<<position<<endl;
return 0;
}
相关文章推荐
- 11选5心得
- jquery基本选择器的用法解析
- Linux htop工具使用详解
- POJ 1007 - DNA Sorting
- java synchronized详解
- linux系统优化
- jQuery 核心
- MySQL里host为%是什么意思
- 单源最短路径 DIJ算法(无堆优化)
- php提交表单用Ajax方法大全
- HTML基本常识
- linux shell 编程(四)
- [模版] unique函数,vector合并,数组、vector快速输出(cout)
- Session随便写的(抄书笔记)
- 通过Gearman实现MySQL到Redis的数据复制
- c++高精度运算(加、乘)
- linux下的nginx中php文件出现缓存的问题
- css游戏
- 按照教程初学IOS第一天demo1,实现点击切换字和颜色(有源码打包)
- HDU 3652 B-number (数位DP)