string及其常见函数

1.字符串查找函数find


#include<bits/stdc++.h>
using namespace std;
 
int main()
{
	string s;
	cin>>s;
	cout<<s.find("aa")<<endl;//查找字符串“aa”首次出现位置
	cout<<s.find("aa",3)<<endl;//查找下标3开始(即第四个字符开始)字符串“aa”首次出现位置
    cout<<s.find('a')<<endl;//查找字符串'a'首次出现位置
	cout<<s.find('a',3)<<endl;//查找下标3开始(即第四个字符开始)字符串“aa”首次出现位置
    cout<<s.rfind("aa")<<endl;//查找字符串“aa”最后一次出现位置
}
/*
aabaabaab
0
3
0
3
6
*/

找不到则返回-1

2.计算某一字符出现个数

int cnt = count(str.begin(), str.end(), ' '); //计算空格数量

3.取子串


str = str.substr(cnt); //取从cnt下标开始一直到结束的所有字符
str = str.substr(cnt,m); //取从cnt下标开始的m个字符

4.查找第一个大于或大于等于的字符

x=lower_bound(b+1,b+m+1,y)-b;//从[first,last)中找第一个大于等于y的元素的地址
                             //-b是转化为下标
x=upper_bound(b+1,b+m+1,y)-b;//同理,只不过找第一个大于的

5.查找某一字符串中任意字符首次/末次出现位置

 find_first_of()方法在字符串中查找参数中任何一个字符首次出现的位置。例如,下面的语句返回r在”cobra”中的位置,因为这个”hark”中各个字母在”cobra”首次出现的位置:


#include<bits/stdc++.h>
using namespace std;
 
int main()
{
	string s;
	cin>>s;
	cout<<s.find_first_of("hark")<<endl;
    cout<<s.find_last_of("hark")<<endl;
}

6.查找不是某一字符串中字符的首次/末次出现位置

find_first_not_of()方法在字符串中查找第一个不包含在参数中的字符

find_last_not_of()方法在字符串中查找第一个不包含在参数中的字符

8.字符串转数字:

string s="12";
int y=stoi(s);
cout<<y<<endl;

数字转字符串:

string x=to_string(12);

10.大小写转化

transform(s.begin(),s.end(),s.begin(),::tolower);
transform(s.begin(),s.end(),s.begin(),::toupper);

11.cin和getline

当 cin 读取数据时,它会传递并忽略任何前导白色空格字符(空格、制表符或换行符)。一旦它接触到第一个非空格字符即开始阅读,当它读取到下一个空白字符时,它将停止读取。
为了解决这个问题,可以使用一个叫做 getline 的 C++ 函数。此函数可读取整行,包括前导和嵌入的空格,并将其存储在字符串对象中。

12、替换函数

string s;
s.replace(1,3,"1111");//从1号位置起3个字符替换成111

13、字符串比较

string a,b;
cin>>a>>b;
if(a.compare(b)==0)
    cout<<"相等"<<endl;
else
	if(a.compare(b)==1)
    	cout<<"前者大"<<endl;
	else
	    cout<<"后者大"<<endl;

14、插入函数和删除函数


s.insert(1,"111");//在1位置后插入111 
s.erase(1,2);//从1位置开始删两个 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值