C++ 标准模板库--string使用方法(排序)

额外补充:使用 sort 可以对 string 内部进行排序。

一、关于string

1.本质:将常用函数功能进行封装的字符数组。
2.优点:使用更加方便,且不容易发生错误。

二、使用string

1.需要引用的头文件

#include<string>       // !!!注意和 string.h 不是同一个头文件!!!
using namespace std;

 2.定义

string str;

//定义并赋值
string str = "abcd";

3.访问

3.1通过下标访问(简单)

//输出一个字符
printf("%c",&str[i]);

如果要读入和输出整个字符串,要用cin cout:

#include<iostream>
#include<string>

using namespace std;

int main(){
	string str;
	cin >> str;
	cout << str;

// 如果必须要用 printf 输出 ,则应该采用以下方法。
    printf("%s",str.c_str());    //将 string 型使用 c_str() 变成字符数组。
	return 0;
}

3.2通过迭代器访问

#include<iostream>
#include<string>

using namespace std;

int main(){
	string str;
	cin >> str;
	for(string::iterator it = str.begin(); it != str.end();it++){
		printf("%c",*it);
	}
	return 0;
}

4.常用函数

4.1 “ + = ”使用

#include<iostream>
#include<string>

using namespace std;

int main(){
	string str1 = "abc",str2 = "xyz",str3;
	str3 = str1 + str2;
	str1 +=  str2;
	cout << str1 << endl;
	cout << str3 << endl;
	return 0;
}

// 输出结果为 abcxyz
//           abcxyz 

4.2 比较

两个 string 可以直接使用 < = > 的运算符进行比较,比较规则是基于字典序。

if(str1 > str2) {}
if(str1 != str2) {}
if(str1 <= str2) {}

4.3length size

int len = str.length();
int size = str.size();

//结果相同

4.4insert()

两个参数使用方法:

//在 str 3 号位插入 str2.
str.insert(3,str2);
//在 str 2 号位直接插入 sxy 字符串
str.insert(2,"sxy");

三个参数使用方法:

string str1 = "abc",str2 = "xyz";
str1.insert(str1.begin(),str2.begin(),str2.end());
//在 str1 中 0 号位插入 str2 中 0号位 到 最后一个字符,区间为左开右闭。

4.5erase()

删除一个元素:

st.erase(str.begin() + 4);
// 删除 4 号位。

删除一个区间的元素:

str.erase(str.begin() + 1 , str.begin() + 3);
//删除 str 中 1、2 号位,区间左开右闭。

str.erase(1,3);
//删除从 1 号位开始的 3 个,即删除 1 2 3 号位。

4.6clear

//清除所有元素。
str.clear();

4.7substr()

string i = str.substr(4,4);
// 返回从 4 号位开始,长度为 4 的子串。

4.8find

int i = str.find(str1);
//在 str 中匹配 str1 若匹配成功,则返回第一次出现的位置,若失败,则返回-1。
int o = str.find(str1,4);
//在 str 中从 4 号位开始匹配 str , 返回值与上面相同。

4.9replace()

//把 str 从 2 号位开始,长度为 2 的子串,替换为 str2。
str.replce(2,2,str2);
//把 str 迭代器为[it1 , it 2)范围内的子串,替换为 str2。
str.replace(str.begin(),str.begin() + 2 , str2);

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值