实话实说,此处我写的看起来可能不怎么明确,因为我不想在进行细分和介绍了,直接把这些代码全部都给出了,当然string还有更多的用法 ,此处的不太全面。
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s1;
cout<<s1<<endl;//直接输出为空
string s2(3,'w');
cout<<s2<<endl;//赋值为3个w
string s3("asdfgh");
cout<<s3<<endl; //赋值s3为括号内的内容
string s4("asdfgh",4);
cout<<s4<<endl;//赋值s4为字符串的前四个
string s5("asdfgh",2,5);//赋值s5为字符串的下标2到5
cout<<s5<<endl;
string s6(s5);//复制
cout<<s6<<endl;
cout<<s1.empty()<<endl;
cout<<s2.empty()<<endl;//empty判断是否为空 为空则为1 不为空为2
cout<<s2.capacity()<<endl;//计算系统分配的容量大小
cout<<s3.length()<<endl;//
cout<<s3.size()<<endl;//计算所用空间,
//但是size与length并不一样
s2.resize(2);//修改容量大小
cout<<s2<<endl;
s3[1]='m';
s3.at(2)='n';//修改制定下标
cout<<s3<<endl;
s2.insert(2,s3);//在下标2的前面插入s3
cout<<s2<<endl;
s2.insert(2,"asdfgh",2,5);//在下标为2的前面插入字符串的2
//到5的部分
cout<<s2<<endl;
s2.insert(2,3,'e');//在下标为2的前面插入三个e
cout<<s2<<endl;
s2+="qqqqqq";//在s2后面插入‘‘qqqqqq’‘
cout<<s2<<endl;
s4+=s5;//在s4后面插入s5
cout<<s4<<endl;
s4.append("asa");//在s4后面插入asa
cout<<s4<<endl;
string s7;
s7="zxcv";
string s8;
s8=s7;//使s7的内容复制给s8
cout<<s7<<endl<<s8<<endl;
s7.assign("qwer");//赋值
cout<<s7<<endl;
s7.erase(1,2);//从下标1为开始删除1后面的两个字符
cout<<s7<<endl;
s7.swap(s8);//转换二者内容
cout<<s7<<endl<<s8<<endl;
cout<<(s7>s3)<<endl;//为真则为0 假就是1
string s10="abzx",s11="ag";
cout<<s10.compare(s11)<<endl;//结果为正数s10大,为0相等,
//否则s11大
cout<<s10.compare(2,3,s11)<<endl;//表示s10的下标
//为2到3的地方与s11进行比较
cout<<s10.compare(1,3,s11,2,3)<<endl;
//表示s10下标1到3的部分与s11下标2到3的部分进行比较
char s14[10];
s5.copy(s14,1,2);//将s5复制进字符数组s14中
//,1为复制的字符数,2是开始复制的位置
cout<<s14<<endl;
string s100="asdfasdqwe",s101="dfa";
cout<<(int)s100.find(s101,1)<<endl;
//在s100中查找s101,从下标1的位置开始,z找到返回位置,找不到
//返回-1
cout<<(int)s100.find("dfl")<<endl;
//在s100中查找字符串’‘dfl''
return 0;
}
下面都是运行结果,自己可以尝试都过一遍,加深印象。