string是字符串
前提:#include <string> (C中应加入using namespace std;)
注释中给了各种string函数的用法,大家可以借鉴一下
#include <iostream>
#include <string>//注意string和string.h是不一样的头文件
using namespace std;
//string 用c++的话可以直接用cin和cout用于输入和输出
//可在定义时赋值 string str = "advd";
//如果用c的printf输出可以使用str.c_str()函数进行输出
//迭代器 string::iterator it;
//string和vector都支持对于迭代器加减某个数字
//用+直接连接两个字符串 str1 = "ac"; str2 = "de"; str1+=str2;==>str1 = "acde";相当于将字符串2拼接到字符串1的末尾
//str3 = str1+str2;这样是将两字符串赋给一个新的字符串
//==;!=;<;<=;>;>=利用字典序进行比较
//str.length()与str.size()都表示字符串的长度
//str.insert();用法:(1)str.insert(pos,string); pos为string插入的位置,pos是数字可以理解为从该数组下标开始
//(2)str.insert(it,it2,it3); it为原字符串预插入位置 it2 it3 分别为所插入子串的首位迭代器
//str.erase(it); str.erase(first,last);在两迭代器之间 str.erase(pos,length);删除从pos位起长为length的字符
//str.clear();清空
//str.substr(pos,length); pos号位开始长度为length的字符串
//string::npos;是当find()函数失配时的元素返回值
//str.find(str1); 返回str1在str中的起始位置
//str.find(str2,pose); 从str的pose位开始匹配str2返回当前位置
//str.replace(pose,len,str1); 将pose位开始长为len的子串,替换为str1
//str.replace(it1,it2,str1); 将迭代器[it1,it2)位置上的子串替换为str1
int main()
{
string str;
string str1;
string str2;
cout<<"输入第一个和第二个字符串"<<endl;
cin>>str1;
cin>>str2;
cout<<"str1.length="<<str1.length()<<" str2.size()="<<str2.size()<<endl;
str = str1+str2;
cout<<"Output str1 + str2"<<endl;
cout << str;
cout << endl;
str.insert(3,"kaka");
string::iterator it = str.begin()+2;
str.insert(it,str1.begin(),str1.end());
cout<<"在str[3]位置插入kaka,后在str[2]位置插入str1字符串"<<endl;
for(string::iterator it = str.begin();it!=str.end();it++){
cout<<*it;
}
cout<<endl;
cout<<"返回str[2]开始长度为str1长度的字符串"<<str.substr(2,str1.size())<<endl;
if(str.find(str1,1)!=string::npos){
cout<<"从str[1]开始搜索存在字符串str1的位置是:"<<str.find(str1)<<endl;
}
else{
cout<<"在其中没有字符串!"<<endl;
}
str.replace(2,str2.size(),str2);
cout<<"将str1替换str2:"<<endl;
for(string::iterator it = str.begin();it!=str.end();it++){
cout<<*it;
}
cout<<endl;
return 0;
}