#include<iostream>
#include<string>
using namespace std;
void Print(){
cout << "------------------------------------------------------------------------------------" <<endl<<endl;
}
void strShuXing() {
string str1("sadasd");
str1.resize(3); //保留前n个
str1.reserve(15); //修改容量
cout << str1.length() << endl ; // 长度
cout << str1.size() << endl; // 个数
cout << str1.capacity() << endl; //输出容量大小
cout << str1 << endl;
}
void strOut(){
string str1("abcdefg");
//输出
cout << str1 << endl;
cout << str1.c_str() << endl;
//输出单个字符
cout << str1[5] << endl; //不能越界 越界崩溃 下标
cout << str1.at(5) << endl; // 越界异常
try
{
str1.at(8);
} //如果越界 抛出catch
catch(...)
{
cout << "越界了" << endl ;
}
}
void strXiuGai(){
string str1("abcdefg");
string str2("higklmn");
string str3=str1;
string str4("123456");
//中间插入
cout << "中间插入insert的用法:" << endl;
str1.insert(0,str2);
cout << "str1.insert(n," ") 将 " " 插入到下标为n的字符的前面 " << str1 << endl;
str1.insert(0,"higklmn");
cout << "str1.insert(n," ") 将 " " 插入到下标为n的字符的前面 " << str1 << endl;
str2.insert(2,3,'c');
cout << "str2.insert(n,i,' ') 在第n个位置前插入i个相同字符' ' " << str2 << endl << endl;
Print();
//尾巴插入
cout << "尾巴插入append的用法:" << endl;
str3.append(str4);
cout << "str3.append(str4) 尾巴通过一个对象拼接 " << str3 << endl;
str3.append("789");
cout << "str3.append(" ") 尾巴通过一个字符串拼接 "<< str3 << endl;
str3=("abcdefg");
str3.append(5,'c');
cout << "str3.append(n,char) 拼接n个字符char " << str3 << endl;
str3.append(str4,2,3);
cout << "str3.append(*str,i,n) 拼接str字符串第i个位置以后的n个字符 " << str3 << endl;
Print();
//修改指定元素
str1=("abcdefg");
str1[2] = 'q';
str1.at(3) = 's';
cout<< "str1.at(3) = 's'或者str1[2] = 'q' 修改指定元素 " << str1 << endl;
}
//其他函数
void strFun(){
string str1("abcdefg");
string str2("abc");
string str3;
cout << "比较函数str.compare" <<endl;
cout << "str1>str2大于返回1小于返回0 " << (str1>str2) << endl;
cout << "str1.compare(str2),可以接字符串不大于返回-1,大于返回多出来的几个 " << str1.compare(str2) << endl;
cout << "str1.compare(i,j,str2)str1的从第i个字符数后面j个与str2比较 " << str1.compare(1,3,str2) <<endl;
cout << "str1.compare(i,j,str2,n,m)同上 " << str1.compare(1,3,str2,1,2) << endl;
Print();
cout << "查找函数str.find" <<endl;
cout << "str1.find(str2)函数返回下标 " <<str1.find(str2) << endl;
cout << "输出子串str1.substr()" <<endl;
int left=str1.find('a');
int right=str1.find('f');
cout << "str1.substr(right+1,left-1) " << str1.substr(left+1,right-1) << endl;
}
int main(){
strShuXing();
Print();
strOut();
Print();
strXiuGai();
Print();
strFun();
Print();
return 0;
}
C++ STL string基本操作
猜你喜欢
转载自blog.csdn.net/lesileqin/article/details/82778227
今日推荐
周排行