当前位置: 首页 > news >正文

【学习笔记】字符串string的常用处理方法(C++)

初始化 //默认初始化为空字符串

string sub;//默认初始化为空字符串

截取.substr()

string c = s.substr(i, k)//从i起,长为k

追加字符.push_back(A); //其中A是char类型

  • //应用: 由此可以将string用栈思想来操作( stack.top() = string.(string.length()-1) )
string s;
s.push_back('a');

接收

无惧空格,读入一整行 getline:
getline(cin, s);//遇到换行符才会停
  • 注意:cin后,用getline前,要先进行一次getline来“清除缓存”。
string s;
cin>>s;
getline(cin, s);//清除缓存:此时输入s为""
getline(cin, s);//正式接收新的输入

查找

易错: 单个字符用单引号;// 如 s.find('A'); 
.find()
  • 若成功找到,返回第一次出现位置的首字母下标,
  • 若找不到,返回标记 s.npos (一般来说,其实就是整型值 -1)
string s;
int pos1 = s.find('A');//单个字符用单引号哦~
int pos = s.find("tofind");
if(pos == s.nops) cout<<"not found";
if(pos >= 0) cout<<"found";
.rfind():
  • 若字符找到,返回从右往左数第一次出现该字符的位置下标

(组合应用例) 将A换成B:

分两步:

  • 1.用.find方法找到A;
size_t pos = s.find("world");
//size_t是无符号整数类型,主要用于表示内存大小、对象大小或数组索引等
//此处用int也可以的
  • 2.用,replace方法替换为B;
s.replace(pos, len, "C++");
 替换实现:
#include<bits/stdc++.h>
using namespace std;

int main()
{
	string s = "Hello world";
	int pos = s.find("world");
	if(pos != string::npos)
	{
		int len = strlen("world");
		s.replace(pos, len, "C++");
	}
	cout<<s<<endl;//输出"Hello C++"
}

(组合应用例) 将字符串 sub 中的字符 'A' 前的子串删除掉

string sub = "fddfsdfhods";
int pos = sub.find('A');
if(pos >= 0)//找到了
{
    sub = sub.substr(pos, sub.length() - 1 - pos);
}

http://www.dtcms.com/a/122141.html

相关文章:

  • 批量给 jpg/png 等格式图片添加文字水印或图片水印
  • 算法训练之位运算
  • 记一次ubantu搭建vulhub靶场。从docker安装到拉取vulhub靶场一条龙服务
  • 数据结构刷题之贪心算法
  • Apache Nifi安装与尝试
  • 从政策引领到实战应用:消防救援“一张图”的蜕变之路
  • B站充电视频下载器(需配合会员Cookie使用,仅供学习交流,Python)
  • 【Ubuntu】超详细安装Ubuntu系统
  • 头歌 | WPS 文档 设置样式
  • Python+Requests 企业级接口测试入门(1~3天)
  • Spark Core编程
  • 智能 SQL 优化工具 PawSQL 月度更新 | 2025年3月
  • Android学习总结之自定义View实战篇
  • 探究按摩养生门店危机:上门服务成 “搅局者”
  • Python安装软件包报错 fatal error: Python.h: No such file or directory
  • python reportlab模块----操作PDF文件
  • 请回答集成测试和系统测试的区别,以及它们的应用场景主要是什么?
  • 解决华硕主板Z890m下载ubuntu20.04后没有以太网问题
  • 【免费】在线工具网址
  • CSS空间转换
  • 第十四届蓝桥杯Scratch03月stema选拔赛真题——绘制彩虹
  • pycharm编译部署智能合约(solcx与web3搭配)
  • crossorigin是什么?【你了解前端的crossorigin吗?!】
  • mapbox基础,加载F4Map二维地图
  • Scala相关知识学习总结6
  • GPT-4o-image模型:开启AI图片编辑新时代
  • Windows Terminal 美化增强攻略 2.0:打造个性化高效开发环境(快捷键介绍、编程语言环境、starship美化、高效命令行工具)
  • TCP的三次握手和四次挥手
  • Visual Studio未能加载相应的Package包弹窗报错
  • HarmonyOS:使用geoLocationManager (位置服务)获取位置信息