#include<string>
using namespace std;
string str
string str="abcd
#include<stdio.h>
#include<string>
#include <iostream>
using namespace std;
int main(){
string str = "abcd";
printf("%s\n",str.c_str());//将string型str使用c_str()变为字符数组
for(int i = 0; i<str.length();i++){
printf("%c",str[i]);
}
for(string::iterator it= str.begin();it!=str.end();i++){//string迭代器
printf("%c",*it);
}
cin>>str; //输入
cout<<str;//输出
string str1 = "abc", str2 = "xyz",str3="aaa",str4="xyz";
str3 = str1+str2;//将str2直接拼接到str1上
cout<<str1<<end1;
cout<<str3<<end1;
if(str1<str2) printf("ok\n");//两个字典序直接比较
if(str1!str3)printf("ok2\n");
if(str4>=str3) printf("ok3\n");
return 0;
printf("%d %d\n",str.length(), str.size());//string的长度,存放的字符数
string str = "abcxyz", str2="opq";
str.insert(3,str2);//往str【3】处插入opq
cout<<str<<end1;
str.insert(str.begin()+3,str2.begin(),str2.end());//串【)将被插在it位置上
string str = "abcdefg";
str.erase(str.begin()+4);//删除4号位(即e)
str.erase(str.begin()+2,str.end()-1);//删除范围内的元素
str.erase(3,2);//删除从3号位开始的两个字符,即de
cout<<str<<end1;//输出abcdfg
str.clear();//清除字符串
string str = "thank you for your smile.";
cout<< str.substr(0,5)<<end1;//结果 thank
cout<<str.substr(14,4)<<end1;//结果your
cout<<str.substr(19,5)<<end1; //结果smile
if(string::npos == -1){//::npos 等于-1或者 4294967295
cout<<"-1 is true."<<end1;
}
if(string::npos == 4294967295){
cout<<"4294967295 is also true."<<end1;
}
string str = "thank you for your smile.";
string str2 = "you";
string str3 = "me";
if(str.find(str2)!==string::npos){//当str2是str子串时,返回其在str中第一次出现的位置,如果不是子串,返回string::npos
cout<<str.find(str2)<<end1;
}
if(str.find(str2,7)!=string::npos{//从str的pos号位开始匹配str2,返回值与上相同
cout<<str.find(str3)<<end1;
string str = "thank you for your smile.";
string str2 = "you";
string str3 = "me";
cout<<str.replace(10,4,str2)<<end1;//从pos号位开始,长度为len的子串替换为str2
cout<<str.replace(str.begin(),str.begin()+5,str3)<<end1;//迭代器范围内的子串替换为str2
return 0;
}