C++ STL string基本操作

#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;
} 

猜你喜欢

转载自blog.csdn.net/lesileqin/article/details/82778227