string基本操作:删除制定位置,截取,替换,查找字符串位置,插入字符串

#include<iostream>
#include<string>
using namespace std;
int main() {
	//////////////////////////////////////////////////////////////////////////////
	//删除制定位置字符串erase(删除起始位置, 以起始位置开始的相对结束位置);
	//会改变字符串原有内容!!!!!!
	std::string str = "0123456789";
	str.erase(0, 5);
	std::cout << str << std::endl;

	//////////////////////////////////////////////////////////////////////////////
	//截取字符串 str.substr(截取起始位置, 以起始位置开始的相对结束位置);
	//如果str.substr(截取位置),不输入第二个参数 就是从截取位置到最后位置
	//不会改变字符串原有内容,返回值是要截取的字符串
	str = "01234567890";
	std::cout << str.substr(2, 3) << std::endl;
	std::cout << str << std::endl;

	//////////////////////////////////////////////////////////////////////////////
	//替换字符串 str..replace(截取起始位置,以起始位置开始的相对结束位置)
	//第三个参数可以是 char*或 string 类型
	str = "01234567890";
	std::string str1 = "AAAAAA";
	std::cout << str.replace(2,5, str1) << std::endl;
	std::cout << str.replace(2, 4, "_ABCD_") << std::endl;

	//////////////////////////////////////////////////////////////////////////////
	//查找字符串位置 str.find("RD"),参数是 char*或者 string 类型都可以
	std::string cc = "RD";
	str = "01234567890 HELLO WORD";
	std::cout << str.size() << std::endl;
	//自己判断 find函数的返回值 不能大于 字符串的最大个数,不能小于0
	size_t idx = str.find("RD");
	if (idx < str.size() && idx > 0) {
		std::cout << "找到了位置在" <<idx<< std::endl;
	}
	else {
		std::cout << "没找到" << std::endl;
	}

	//string::npos表示不存在的位置  find的返回值是std::string::size_type 类型的
	std::string::size_type pos;
	pos = str.find(cc);
	if (pos != str.npos) {
		std::cout << "找到了位置在" << pos << std::endl;
	}
	else {
		std::cout << "没找到" << std::endl;
	}

	//////////////////////////////////////////////////////////////////////////////
	//插入字符串 str4.insert(插入位置,char*或者string); 
	str = "01234567890";
	str.insert(5,"_ABC_");
	std::cout << str << std::endl;
	//insert(插入位置,插入字符个数,字符串);
	str = "01234567890";
	str.insert(5, 5,'Z');
	std::cout << str << std::endl;

	//insert(插入位置,要插入的char*或string,要插入字符串从0到结束位置);
	str = "01234567890";
	str.insert(5,"HELLO", 3);
	std::cout << str << std::endl;

	//insert(插入位置,要插入的char*或string,要插入字符串的起始位置,要插入字符串的结束位置);
	str = "01234567890";
	string sstr = "HELLO";
	str.insert(5, sstr,1,3);
	std::cout << str << std::endl;

	cin.get();
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_42204566/article/details/84709226
今日推荐