C++中string字符串的基础操作,学习

news/2024/11/13 11:59:01/文章来源:https://www.cnblogs.com/zpa666/p/18538418

string 字符串

常用函数

  • substring()
  • string.length()&&string.size()
  • string.find()
  • string.replace()
  • string.substr()

string初始化和声明

#include<bits/stdc++.h>
using namespace std;int main(){string str1; //空字符串string str2="hello, world";  //注意中间有空格和‘,’逗号//通过str2赋值给str3string str3=str2; //初始化重复的字母stirng str4(5,'C'); // str4="CCCCC"return 0;       }

获取字符串的长度

string.length()&&string.size()

#include<bits/stdc++.h>
using namespace std;int main(){string str1="hello,, world";int len=str1.length();int len1=str1.size();cout<<len<<len1; //输出13 包括2个逗号和一个空格return 0;       }

length()size()返回的是无符号整数(0,1,2...) 使用时尽量用 (int)str1.length()进行强转

字符串查找

string.find()

#include<bits/stdc++.h>
using namespace std;int main(){string str1="hello,, world";int x=str1.find(" world"); //用int 替代 size_t (无符合整数)cout<<x; //输出7 空格的下标是7int y=str1.find(" 2world");cout<<y;//输出的-1;}

找到相应的子串会返回子串中第一个char在字符串中的下标,如果没有找到会返回 -1

字符串拼接

+ || append()

#include<bits/stdc++.h>
using namespace std;int main(){string str1="hello";string str2="world"string str3(5,'Z');// 用+进行拼接string re1=str1+str2+str3;cout<<re1; //输出helloworldZZZZZ//用append()string re2=str1.append(str2).append(str3).append("!");cout<<re2; //输出helloworldZZZZZ!}

**+ 拼接时可用char拼接,但在append()中的参数只能是string类型,不能是char **

string re1=str1+str2+str3+'!'+"2313";
cout<<re1;//输出helloworldZZZZZ!2313
string re2=str1.append(str2).append(str3).append('!');//append('!')会报错

字符串替换

string.replace()

#include<bits/stdc++.h>
using namespace std;int main(){string str1="hello,, world";str1.replace(7,3,"333444");//7代表从下标为7的元素开始‘ ’,3代表要替换的长度(” wo“)cout<<str1;//输出 hello,,333444rld}

提取子字符串

substr()

#include<bits/stdc++.h>
using namespace std;int main(){string str1="hello,, world";string re1=str1.substr(2,4); //2表示从下标2开始,4表示提取子字符串的长度;cout<<re1;//输出 llo,}

字符串比较

compare()

#include<bits/stdc++.h>
using namespace std;int main(){string str1="hello,,world";string str2="heooll";int in=str1.compare(str2); // 比较到下标为2时,'l'<'o' 所以返回-1cout<<in;//输出-1 str1比str2小// 用<,>,== 来比较字符串大小int re1=str1<str2;int re2=str1==str2;int re3=str1>str2;cout<<re1<<re2<<re3;//输出 1 0 0}

字符串的比较不是越长就越大,比较时会从第一个元素进行一一对应的比较,如果有不相同的元素就会马上得出结果;

re=str1.compare(str2)

  • re==0 字符串相等
  • re<0 str1较小
  • re>0 str2较大

用 <,>,== 比较 re=str1<str2

  • re=1 str1小于str2
  • re=0 str1不小于str2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/830791.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文系列】之 ---- BERT

BERT(Bidirectional Encoder Representation from Transformers) 机器阅读理解领域 从名字很好理解,主要使用的方法是Transformer的方法。。进行机器翻译等操作(1)词嵌入Embedding 词嵌入又有三个部分组成:Token EmbeddingSegment EmbeddingPosiiton Embedding 文本出现的…

【神经网络组件】Transformer Encoder

【神经网络组件】Transformer Encoder 目录【神经网络组件】Transformer Encoder1. seq2seq模型2. 为什么只需要Transformer Encoder3. Transformer Encoder的结构 1. seq2seq模型什么是sequence:sequence指由多个向量组成的序列。例如,有三个向量:\(\mathbf{a} = [1,0,0]^T…

黑马PM- B端产品-B端基础知识

什么是B端产品B端产品市场介绍B端产品常见分类B端与C端产品区别供应链简介

Roma and Poker

算法 因为这题是从差分约束专题来的, 所以肯定要朝着化为不等式的方向化简 令 \(TimeW_i, TimeD_i, TimeL_i\) 表示原串前 \(i\) 位中 \(W, D, L\) 的个数 令 \(W_i, D_i, L_i\) 表示最后结果中前 \(i\) 位 \(W, D, L\) 的个数 根据原串有 \[\left\{ \begin{array}{lr} W_i \…

Cocos Creator 如何调试代码?

一、方式调试代码两种方式: 在VS code中调试在浏览器中调试二、调试一:VS Code中Chrome浏览器 打开VS Code中的插件下载Debugger for Chrome/JavaScript Debugger 打开Cocos Creator点击菜单中的开发者选项 选择Visual Studio Code 工作流 -> 添加Chrome debug配置,此时VS…

旋转矢量合成,两个圆圈

import numpy as np import matplotlib.pyplot as plt from matplotlib.patches import Circle, FancyArrowPatch from matplotlib.animation import FuncAnimation# 创建一个新图和两个坐标轴 fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 6))# 设置坐标轴的等比例,确…

华三配置mstp

S1配置 stp mode mstp stp region-configuration region-name a revision-level 1 instance 1 vlan 10 instance 2 vlan 20 active region-configuration qu stp instance 1 root primary stp instance 2 root secondary stp global enable === S2配置 stp region-configuratio…

2024-2025-1 20241411 《计算机基础与程序设计》第七周学习总结

作业信息这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP/这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07这个作业的目标 数组与链表、基于数组和基于链表实现数据结构、无序表与有序表、树、图、子程序与参数作业正文…

并查集+最小生成树 学习笔记

图论系列: 前言: 咲いた野の花よ ああどうか教えておくれ 人は何故傷つけあって 争うのでしょう 相关题单: 题单1 题单2 题单3 题单4 一.并查集 1.基础定义与操作 (1)定义 并查集是一种用于管理元素所属集合的数据结构,实现为一个森林,其中每棵树表示一个集合,树中的节…

三相电合成旋转矢量-动态图

import numpy as np import matplotlib.pyplot as plt from matplotlib.patches import Circle, FancyArrowPatch from matplotlib.animation import FuncAnimation# 创建一个新图和两个坐标轴 fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 6))# 设置坐标轴的等比例,确…

接雨水

using namespace std; //锻炼思维的题目。 int main(){ int t;cin>>t;while(t--){long long int n; // 使用 long long int 来处理可能的大数cin>>n;vector<long long int> a(n), l(n), r(n); // 同样,数组元素也应该是 long long intlong long int …

第 2 篇 Scrum 冲刺博客

作业要求这个作业属于哪个课程 计科34班这个作业的要求在哪里 团队作业4——项目冲刺这个作业的目标 1.站立式会议2.发布项目燃尽图3.每人的代码/文档签入记录4.适当的项目程序/模块的最新(运行)截图5.每日每人总结会议照片昨日已完成的工作/今天计划完成的工作成员 昨天已完…