#include<string>//string类型头文件 
using namespace std;
int main(){
	//容器、方法、迭代器
	 
	//容器的定义方法
	string s1;  //定义一个空字符串 
	string s2("hello"); //定义一个有内容的字符串
	string s3(10,'s');//定义一个有10个s字符的字符串
	string s4(s2);//将s2复制给s4 
	 
	//容器的方法
	s2.clear();// 清空字符串
	s2.empty();//判断字符串是否为空 
	s2.push_back('s');//在末尾插入一个s字符
	s2.pop_back();//删除末尾的一个元素
	s2.begin();
	s2.end(); 
	 
	//插入: 
	s2.insert(pos,"ddw");//在pos位置插入一个字符串
	s2.insert(2,"sdadw");//在第二号下标的位置插入
	 
	//拼接:
	s2.append(s3);//把s2和s3拼在一起
	s2.append("dawdaw");

	//删除:
	s2.erase(8,5);//从第8号位置往后删5个元素,包括8
	s2.erase(s2.end()-1);//直接删除某个位置
	s2.erase(s2.begin(),s2.end());//左闭右开

	//查找:
	s2.find(s3);//找到了,就返回匹配的第一个位置
	s2.find('s');

	//反向查找:
	s2.rfind('p'); //从右往左查找,返回位置

	//比较
	s2.compare(s3);//如果长度、字符都一样,就返回0
	//如果s2比s3第一个不一样的字符小,或者长度小,返回-1
	//如果大,就返回1

	//替换
	s2.replace(6,4,"aaaa");//从6号开始,往后的4个换成aaaa

	//交换
	s2.swap(s3);//交换两个字符串的内容

	//长度
	s2.length();//求s2的长度
	s2.size();//求s2的长度 


	//string类型的访问
	//下标访问
	for(int i = 0;i<s2.length();i++) 

	//使用at()访问
	for(int i = 0;i<s2.size();i++){
		cout << s2.at(i)<<endl;
	} 

	//迭代器
	string::iterator it;
	for(it = s2.begin();it!=s2.end();it++){
		cout << *it<<endl;
	}

	//将字符数组转化为字符串
	char str[]="hello world";
	string sn(str); 

	//提取子串 
	string sa("abcdefg");
	string sc; 
	sc=sa.substr(2,4);//从2开始往后数4个字符,赋值给sc

	//输入方法
	//1.cin
	cin >> s2;//缺点是不能读入空格
	//2.getline
	getline(cin,s2);//可以读空格 
}

1 条评论

  • 1