C++字符串知识杂记


注意,本文章所有内容都是在mac OS中用终端编译过了的,但并不一定适合其他系统及编译器。

size()函数

首先size()函数应用于字符串中字符数的获取,所以头文件中肯定是要调用string库的,同理,其他string库的成员函数也都要调用库,如后面的clear()、insert()等函数。

具体用法如下所示:

string ans="surfingcitizen";
cout<<ans.size()<<endl;

输出结果:14

替换字符串中的字符操作

直接上示例:

#include<iostream>
#include<string>
using namespace std;
int main(void)
{
    string tool="surfingcitizen";
    tool[0]='o';
    tool[1]='i';
    cout<<tool<<endl;
    return 0;
}

输出结果:oirfingcitizen

empty()函数

用于判断字符串是否为空字符串。
示例:

	string tool="surfingcitizen";
    cout<<boolalpha<<tool.empty()<<endl;

输出结果:false

clear()函数

用于清空字符串,直接上示例:

	string tool="surfingcitizen";
    cout<<boolalpha<<tool.empty()<<endl;
    tool.clear();
    cout<<boolalpha<<tool.empty()<<endl;

输出结果:
false
true

字符串末尾添加字符/字符串

不bb,直接上代码:

	string tool="乌兹";
    tool+="永";
    tool+="远";
    tool+="滴神";
    cout<<tool<<endl;

输出结果:乌兹永远滴神

insert()函数

用于字符串中字符的插入,如示例:

	string tool="srfg";
    tool.insert(1,"u");    //surfg
    tool.insert(4,"in");
    cout<<tool<<endl;

输出结果:surfing

erase()函数

erase(a,b)用于删除字符串中从第a+1个字符开始的b个字符。

	string tool="suuuurafing";
    tool.erase(2,3);    //surafing
    tool.erase(3,1);
    cout<<tool<<endl;

输出结果:surfing

replace()函数

用于替换字符或者字符串,用法如下:

	string amt="abcdqm";
    amt.replace(4,2,"efg");//从第4+1个字符开始的2个字符替换成“”中内容
    cout<<amt<<endl;

输出结果:abcdefg

字符串比较

使用等于号==和不等于号!=来判断字符串是否相等,如:

	string amt="abcdqm";
    string abc="faifhaif";
    cout<<boolalpha<<(amt==abc)<<endl;

输出结果:false

substr()函数

用于获取子字符串。但是string库中的substr()函数使用时会复制一个新的字符串,导致占用更多的内存空间,如果使用string_view中的substr()函数则不会有这类问题,因为string_view是仅用于查看字符串,而string则是修改和查看字符串。
关于substr()用法如下:

	string amt="abcdefg";
    cout<<amt.substr(2,3)<<endl;//从第2+1个字符开始的3个字符

输出结果:cde

查找/字符转换

查找即查找字符串中指定字符或字符串的位置,并返回其在字符串中的位置,对应函数有find()、rfind()、find_first_of()、find_last_of()、find_first_not_of()、find_last_not_of()等,如果没找到则返回npos(需要先声明boolalpha)。

	string amt="abcorzqaqtql";
    cout<<amt.find('a',2)<<endl;//查找从第3个字符开始第一个出现a的位置
    cout<<amt.find_last_of("qac")<<endl;//从后往前查找第一个q/a/c出现的位置
    cout<<boolalpha<<(amt.find('m')==u32string::npos)<<endl;

输出结果:
7
10
true

关于数值转换,有函数stoi()、stol()、stoll()、stoul()、stoull()、stof()、stod()、stold()可以将字符串形式的数字转换成数值形式的数字,这里不再举例说明(懒狗

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值