C++中的string用法

article/2025/8/15 4:17:15

(本人只是小新,写博客就是想记录学习,同时让一些大佬看到我的学习记录可以指出我的错误)

目录

 (1)对于string的个人理解

 (2)字符串的输入

 (3)字符串的基本操作

 (4)字符串的输出


对于C++中的string用法

1:对于string的个人理解:

       string个人理解是字符串类型,既然是字符串的类型,那么这篇文章我就分为第一步如何输入字符串,第二步如何对字符串进行操作,第三步如何输出字符串。

2:字符串的输入:

 (1)cin输入字符串:cin后面可以直接加字符串的名字,不过这种输入如果遇到空格,Tab键,回车的话就直接结束。如下面的代码所示:

#include<bits/stdc++.h>
using namespace std;
int main()
{string s;//输入字符串abc def//abc和def之间有个空格cin>>s;cout<<s;return 0;	
}

这里的cout可以直接输出字符串的,后面(4)字符串的输出会讲到的。这里abc和def之间是有空格的,cin再读入时遇到边终止了,所以输出是abc 

(2)gerline读入字符串:getline的读入解决了cin遇到空格等终止的缺点,格式是:getline(cin,s),括号里的cin是固定的,s是一个字符串的名字,代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{string s;getline(cin,s);cout<<s;return 0;	
}

 中间有许多空格,输出的时候同时也将这些空格也输出了。(当然还有其他的可以接收空格字符等的,但我喜欢用的是getline)

3:字符串的基本操作:

(1)string字符串的比较:可以直接使用  compare函数  等来比较,比较的规则是,输出第一个不同字符的比较结果,大于返回1,小于返回-1,相等返回0。compare同时也可以接受其它的参数(具体大家可以参考其他资料哈),代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);getline(cin,b);cout<<a.compare(b);return 0;	
}

 

 

 (2)insert函数:插入

这里的插入可以是字符或者是字符串

1:插入的是字符:格式是a.insert(pos,n,'s')这里的a是字符串的名字,pos是插入的位置,n是字符个数,s代表的就是插入的字符,注意这里的n不可以省略,即使插入的字符只有一个。

2:插入的是字符串:格式是a.insert(pos," s")这里的a是字符串的名字,pos是插入的位置,s是要插入的字符串。代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);cout<<"插入前:"<<a<<endl;a.insert(2,"shd");cout<<"插入后:"<<a<<endl;getline(cin,b);cout<<"插入前:"<<b<<endl;b.insert(3,1,'s');cout<<"插入后:"<<b<<endl;return 0;	
}

 

(3)erase函数:删除

删除的格式:a.erase(2,4)这里的a是字符串的名字,2代表的是删除的起始位置,4代表的是从起始位置开始要删除的字符个数。代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);a.erase(2,5);cout<<a;return 0;	
}

(4)subsrt函数:剪切,我们也可以理解成字符串的子串,格式:a.substr(pos,n)这里的a是字符串的名字,pos是起始位置,n是从起始位置开始算的字符个数。代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);b=a.substr(4,5);cout<<"b="<<b;return 0;	
}

 (5)append函数:添加

其实与insert插入函数的作用差不多,append函数我们一般用来在末尾添加,不需要还要知道原来字符串的长度,append函数如果末尾添加的是字符的话,不管数量多少,都要写一个数字参数代表个数,具体如代码所示:

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);b="abcd";a.append(b);cout<<a<<endl;a.append(1,'2');cout<<a;return 0;	
}

 

 (6)replace函数:替换

顾名思义就是将字符串中的子串替换成其它的字符或者字符串。首先替换字符串,格式是a.replace(pos,n,"12345")这里的a是字符串名字,pos是起始位置,n是从起始位置算起的字符数,后面的双引号里的就是用它来替换从pos开始的n个字符。如果替换字符的话,格式:a.replace(pos,n,ans,' ' )这里的pos和n跟上面一样,ans是字符个数,'  ' 里面的是字符,具体见代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);b="12345";a.replace(1,3,"12345");cout<<a<<endl;string sa,sb;getline(cin,sa);sa.replace(2,1,2,'0');cout<<sa<<endl;return 0;	
}

 (7)find函数:查找

查找字符或者字符串第一次出现的位置,格式具体见代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);b="123";cout<<a.find('a')<<endl;cout<<a.find(b);return 0;	
}

 (8)revese函数:反转

具体见代码格式:

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);reverse(a.begin(),a.end());cout<<a;return 0;	
}

 4:字符串的输出

个人比较喜欢用cout输出,虽然效率不高,但方便。代码如下

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);cout<<a;return 0;	
}

 


http://chatgpt.dhexx.cn/article/CI9y91Ov.shtml

相关文章

c++ String 用法详解 (全面解析)

一。string的初始化 首先要定义它的头文件 #include<string>string类是一个模板类&#xff0c;位于名字空间std中&#xff0c;通常为方便使用还需要增加&#xff1a; using namespace std;然后我们先将声明一个string类型变量的操作 string a;a "hello";//…

string的使用介绍

目录 标准库中的string类 string类(了解) 编码介绍 string类的常用接口说明 Member functions 测试一&#xff1a;创建对象 测试二&#xff1a;遍历字符串 Iterators 测试三&#xff1a;反向迭代器(Iterators) Capacity 测试四&#xff1a;容器相关(Capacity) 测试…

STL之string用法详解

2.1 string容器介绍 string也属于STL常用容器之一&#xff0c;因此vector&#xff08;参考博客&#xff09;中的大部分方法与迭代器都适用于string容器。string容器用于保存字符串&#xff0c;使用一组连续的内存单元来存放字符串中的每个字符&#xff0c;因此也支持随机访问与…

String用法详解

string类 声明 string类本不是STL的容器&#xff0c;但是它与STL容器有着很多相似的操作&#xff0c;因此&#xff0c;把string放在这里一起进行介绍。 之所以抛弃char*的字符串而选用C标准程序库中的string类&#xff0c;是因为他和前者比较起来&#xff0c;不必担心内存是否…

string 的常见用法详解

目录 1.string 的定义 2.string 中内容的访问 3.string 常用函数实例解析 在C语言中&#xff0c;一般使用字符数组 char str[]来存放字符串&#xff0c;但是使用字符串数组有时会显得操作麻烦&#xff0c;在C中加入了string类型。 注意&#xff0c;如果要使用string&#xf…

【C++】STL常用容器总结之十二:string类

13、string类 声明 string类本不是STL的容器&#xff0c;但是它与STL容器有着很多相似的操作&#xff0c;因此&#xff0c;把string放在这里一起进行介绍。 之所以抛弃char*的字符串而选用C标准程序库中的string类&#xff0c;是因为他和前者比较起来&#xff0c;不必担心内…

string的常用用法详解

一般我们在C语言中用到字符串&#xff0c;都是使用字符数组来存放&#xff0c;但是操作字符数组有时候会不便&#xff0c;所以为了方便操作&#xff0c;在C的STL中加入了字符串类型&#xff08;string&#xff09;。 想要复习以往字符数组的相关知识点请点击以下链接&#xff…

对于String的用法详解

目录 一、String的基本用法 二、对于字符串常量池的理解。 三、String类的常见操作。 四、StringBuffer和StringBuilder的使用。 一、String的基本用法 1.1String的创建方法 //第一种创建方法 String str"Hellow"; System.out.println(str);//第二种创建方法 S…

String类的常见用法

目录 1、创建字符串的四种方式&#xff1a;(方式一和方式四最常用&#xff09; 2、字符串的字面量&#xff08;也是字符串的对象&#xff09; 3、字符串比较 4、关于字符串的常量池问题 5、手工入池—String 类提供的 intern 方法 6、字符串的不可变性&#xff1a; 7、修…

非抢占式多级反馈队列优先级调度算法 C++实现

介绍 前段时间比较忙&#xff0c;没有更新&#xff0c;这次的也是操作系统的一个实践作业 C实现非抢占式多级反馈队列优先级调度算法&#xff0c;希望可以帮到你们。 问题介绍 这里我用课件里的内容 1.应设置多个就绪队列&#xff0c;并为每个队列赋予不同的优先级。第一个队…

多级反馈队列算法补充

http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched-mlfq.pdf 本文是多级反馈队列&#xff08;multi-level feedback queue&#xff0c;MLFQ&#xff09;算法的一些小补充&#xff08;两个缺陷与修改方法&#xff09;&#xff0c;参考了上面链接。因为自己用中文没有搜到想要的…

操作系统-多级反馈队列

概述 1962年&#xff0c;Corbato首次提出多级反馈队列&#xff0c;应用于兼容时分共享系统(CTSS)。Corbato因在CTSS中的贡献和后来在Multics中的贡献&#xff0c;获得了ACM颁发的图灵奖(Turing Award)。该调度程序经过多年的一系列优化&#xff0c;出现在许多现代操作系统中。 …

操作系统学习(二):浅析多级反馈队列MLFQ

目录 0、引言 1、多级反馈队列&#xff08;MLFQ&#xff09;的基本规则 2、MLFQ的规则具体说明 3、MLFQ调优及其他问题 4、总结 0、引言 在上篇文章操作系统学习&#xff08;一&#xff09;&#xff1a;浅析操作系统进程调度算法中讲到&#xff0c;在一个通用的操作系统中…

多级反馈队列调度算法(附Python3实现代码)

一、多级反馈队列调度算法 多级反馈队列调度算法是进程调度的一种算法&#xff0c;该调度算法可以不用事先知道各种进程所需的执行时间&#xff0c;还可以较好的满足各种类型进程的需要&#xff0c;是目前共认的一种较好的进程调度算法。 那你可能马上就要问了&#xff0c;多…

调度:多级反馈队列

多级反馈队列&#xff08;Multi-level Feedback Queue, MLFQ&#xff09;是有Corbato在1962年提出的&#xff0c;用于兼容时分共享系统。现在其经过多年的优化&#xff0c;已经被应用于很多现代操作系统中。多级反馈队列是为了解决两方面问题。一&#xff1a;优化周转时间。在之…

多级队列调度和多级反馈队列调度算法的实现

多级队列调度算法 操作系统实验导航 实验一&#xff1a;银行家算法 https://blog.csdn.net/weixin_46291251/article/details/115384510 实验二&#xff1a;多级队列调度和多级反馈队列调度算法 https://blog.csdn.net/weixin_46291251/article/details/115530582 实验三&…

多级反馈队列调度算法模拟实现

实验一 多级反馈队列调度算法 一. 主要实现方法和代码介绍 ​ 1.编写进程类,其只包含所需的运行时间和进程编号两个属性,还有一个运行方法,此方法就是将所需的运行时间属性减去.传入的运行时间. ​ 2.创建进程函数:创建maxp个进程,(应该不超过10,在此创建九个,即暂时不进行进…

计操实验 多级反馈队列C语言

计操实验 多级反馈队列C语言 需求&#xff1a; 1.队列4级&#xff0c;每一级的队列长度均为10&#xff1b;第一级的时间片为T&#xff0c;第二级的时间片为2T&#xff0c;第三级的时间片为4T&#xff0c;第四级的时间片为8T&#xff1b;&#xff08;T的大小自己定&#xff09; …

【操作系统】轮转和多级反馈队列

随着计算机的技术逐渐步入家用后&#xff0c;新的调度指标接踵而来&#xff0c;周转时间已经不能满足人们日常工作的需求&#xff0c;更多时候人们更希望计算机能有更好的交互性&#xff0c;使其能更快地去响应任务&#xff0c;由此针对优化响应时间的调度策略也遍地开花&#…

多级反馈队列调度算法(c++)

如果对你有帮助&#xff0c;可以给卑微的博主留个赞、关注、收藏 (不是) (骗一下数据&#xff0c;说不定以后面试就过了&#xff0c;拜谢) 操作系统基本调度算法&#xff0c;多级反馈队列调度算法。在划分时间片的调度算法中&#xff0c;多级反馈队列算法兼顾提高系统吞吐…