C++---string类


一.string类🍗

C++支持C风格的字符串,另外还提供了一种 字符串数据类型:
string是定义在头文件string中的类,使用前需要包含头文件string。
#include<string>

C语言中的字符串需要引用头文件#include<string.h>

#include<string.h>

值得注意的是,在c++中头文件中都没有.h


二.使用🍗

1.赋值的三种方法🍗

//C++风格
int main()
{string s1;//第一种方式,字符串赋值s1 = "hello c++";string s2 = "今天,好好学习了吗?";    //第二种方式,字符串初始化string s3{ "你学废了吗?"};           //第三种方式 ,用字符串构造stringcout << s1 << endl;cout << s2 << endl;cout << s3 << endl;return 0;
}

  • ​​​第一种方式先定义了string变量s1,再为string变量s1赋值;
  • 第二种方式直接使用“ = ”为string变量s2赋值;
  • 第三种方式在定义string变量时,将初始值放在“{ }”运算符中,使用“{ }”运算符中的字符串为变量初始化;

2,关于字符串的各种操作🍗

1.访问字符串中的字符🍗
string类重载了“[]”运算符,可以通过索引方式访问和操作字符串中指定位置的字符。如下所示:

//string类重载了“[]”运算符,可以通过索引方式访问和操作字符串中指定位置的字符。如下所示:
//C++
int main()
{string s = "hello,C++";cout << s << endl;s[7] = 'P';//通过下标访问第七个元素s[8] = 'P';cout << s << endl; //hello,Cppreturn 0;
}//C语言
int main()
{char s[] = "hello,C++";printf("%s\n", s);s[7] = 'p';s[8] = 'p';printf("%s\n", s);return 0;
}

2.字符串连接🍗
在C语言中,连接两个字符串要调用strcat()函数,还要考虑内存溢出情况。在C++中,string重载了“ + ”运算符,可以使用“ + ”运算符连接两个string类型的字符串,如下所示:

//C++写法
int main()
{string s1, s2;s1 = "我在学习";s2 = "C++";cout << s1 + s2 << endl;     //我在学习C++return 0;
}//C写法
int main()
{char s1[15] = "我在学习";char s2[15] = "C++";strcat(s1, s2);printf("%s", s1);return 0;
}

3.字符串的比较(注意比较的不是长度,而是字母的大小)🍗
在C语言中,比较两个字符串是否相等需要调用strcmp()函数,而在C++中,可以直接使用的“ > ”, “ < ”, “ == ”等运算符比较两个string字符串。如下所示:

//C++
int main()
{string s1, s2;s1 = "hello";s2 = "world";//比较两个字符串内容是否相同 if (s1 > s2)cout << "字符串s1大于s2" << endl;else if (s1 < s2)cout << "字符串s2大于s1" << endl;elsecout << "字符串s1与s2相等" << endl;
}//C语言
int main()
{char s1[10] = "hello";char s2[10] = "world";//比较两个字符串内容是否相同 if (strcmp(s1 ,s2)>0)printf("字符串s1大于s2");else if (strcmp(s1 , s2))printf("字符串s2大于s1");elseprintf("字符串s1与s2相等");
}

4.字符串的长度计算🍗
string类提供的length()函数用于获取字符串长度。length()函数类似于C语言中的strlen()函数。调用length()函数获取字符串长度, 如下所示:

int main()
{string s = "hello C++";cout << "长度:" << s.length() << endl;//9return 0;
}

5.字符串交换🍗
string类提供了成员函数swap(),用于交换两个字符串的值,示例代码如下所示:

int main()
{string s1 = "hello";string s2 = "world";cout << "交换前" << s1 << " " << s2 << endl;//s1.swap(s2); //交换s1与s2的内容swap(s1, s2);cout << "交换后" << s1 << " " << s2 << endl;return 0;
}

6.使用 getline() 函数来获取 string 输入🍗

int main()
{string s;getline(cin, s);cout << s;return 0;
}

7.erase() 进行元素删除操作🍗

int main()
{string str("Hello,World!!");str.erase(5, 6); // 下标为0开始 删除从索引位置 5 (包括第五个字符)开始的 6 个字符cout << "str为:" << str << endl;  //Hello!!return 0;
}

本篇完.🍗

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

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

相关文章

SpringMVC传递数据给前台

SpringMVC有三种方式将数据提供给前台 第一种 使用Request域 第二种 使用Model&#xff08;数据默认是存放在Request域中&#xff09; 与第一种方式其实是一致的 第三种 使用Map集合&#xff08;数据默认是存放在Request域中&#xff09;

20234.1.20 使用idea进行Java的helloworld程序开发

20234.1.20 使用idea进行Java的helloworld程序开发 idea毕竟是jtbrain的产品&#xff0c;整体和pycharm相同&#xff0c;初步使用感受比eclipse更亲切 一、程序结构 project&#xff08;项目&#xff0c;工程&#xff09; module&#xff08;模块&#xff09; package&…

回调地狱与解决方案

什么是回调地狱&#xff1f; 简单理解就是回调函数嵌套回调 示例&#xff1a; setTimeout(() > {console.log(1);setTimeout(() > {console.log(2);setTimeout(() > {console.log(3);}, 1000);}, 2000)}, 3000)如上代码所示&#xff0c;回调函数嵌套回调&#xff0c;就…

Django从入门到精通(一)

目录 一、Django环境搭建与命令 1.1、安装 1.2、命令行 创建项目 编写代码 运行 app概念 1.3、Pycharm创建项目 1.4、虚拟环境 创建虚拟环境 - 命令行 介绍 操作 基本问题 Pycharm 项目虚拟环境 django虚拟环境【安装django最新版本】 django虚拟环境【安装指…

L1-060 心理阴影面积(Java)

这是一幅心理阴影面积图。我们都以为自己可以匀速前进&#xff08;图中蓝色直线&#xff09;&#xff0c;而拖延症晚期的我们往往执行的是最后时刻的疯狂赶工&#xff08;图中的红色折线&#xff09;。由红、蓝线围出的面积&#xff0c;就是我们在做作业时的心理阴影面积。 现…

认识并使用Shiro技术

认识并使用Shiro 一、对Shiro的基本认知1、Shiro是什么&#xff1f;2、Shiro的核心组件是&#xff1f;2.1 Subject2.2 UsernamePasswordToken2.3 Realm&#xff08;重点是&#xff1a;AuthorizingRealm用于授权、AuthenticatingRealm用于认证&#xff09;2.4 SecurityManager2.…

OpenCV-Python(49):图像去噪

目标 学习使用非局部平均值去噪算法去除图像中的噪音学习函数cv2.fastNlMeansDenoising()、cv2.fastNlMeansDenoisingColored等 原理 在前面的章节中我们已经学习了很多图像平滑技术&#xff0c;比如高斯平滑、中值平滑等。当噪声比较小时&#xff0c;这些技术的效果都是很好…

基数(桶)排序

目录 基数排序 实现步骤 完整代码 基数排序 核心思想&#xff1a;统计原数组中某个元素在该数组中出现的次数 优点&#xff1a;效率极高&#xff0c;时间复杂度为O&#xff08;aN countN(范围)&#xff09; 缺点&#xff1a;不适合分散的数据&#xff0c;更适合集中数据…

[全连接神经网络]Transformer代餐,用MLP构建图像处理网络

一、MLP-Mixer 使用纯MLP处理图像信息&#xff0c;其原理类似vit&#xff0c;将图片进行分块(patch)后展平(fallten)&#xff0c;然后输入到MLP中。理论上MLP等价于1x1卷积&#xff0c;但实际上1x1卷积仅能结合通道信息而不能结合空间信息。根据结合的信息不同分为channel-mixi…

知识图谱KG+大模型LLM

LLM-based KG KnowLM OpenSPGKG-based RAG 基本原理 从query出发的语义解析 pre-LLM方法 思想&#xff1a;直接将问题解析为对应的逻辑表达式&#xff0c;然后到知识图谱中查询。 方法&#xff1a;通常包含逻辑表达式、语义解析算法、语义解析模型训练三部分。一般步骤是将问句…

【Kafka】Linux本地和Docker安装Kafka

目录 Linux本地安装kafkajava环境配置Zookeeper的安装配置Kafka的安装与配置生产与消费 Docker安装kafkaZookeeper安装Kafka安装 Linux本地安装kafka java环境配置 1、上传jdk-8u261-linux-x64.rpm到服务器并安装&#xff1a; rpm -ivh jdk-8u261-linux-x64.rpm2、配置环境变…

深度学习(4)--Keras实战

一.Keras基础概念 1.1.Keras是什么 Keras是深度学习中的一个神经网络框架&#xff0c;是一个高级神经网络API&#xff0c;用Python编写&#xff0c;可以在TensorFlow&#xff0c;CNTK或Theano之上运行。 Keras优点&#xff1a; (1). 允许简单快速的原型设计&#xff08;用户…

【C++】用wxWidgets实现多文档窗体程序

一、基本步骤和示例代码 在wxWidgets中&#xff0c;要实现多文档窗体程序&#xff0c;通常会使用wxMDIParentFrame和wxMDIChildFrame类来创建一种标准的MDI&#xff08;多文档接口&#xff09;应用。以下是基本步骤和示例代码&#xff0c;演示如何使用wxWidgets创建多文档界面…

Pycharm详细安装 配置教程

继上次安装完Anaconda之后&#xff0c;现在更新最新版本的pycharm的安装和使用教程~~~ Anaconda&#xff1a;是一个开源的Python发行版本&#xff0c;其中包含了conda、Python等180多个科学包及其依赖项。【Anaconda和Pycharm详细安装 配置教程_anconda安装时clear the packag…

SpringMVC简介和SpringMVC的HelloWorld

一、SpringMVC简介 1、什么是MVC MVC是一种软件架构的思想&#xff0c;将软件按照模型、视图、控制器来划分 M&#xff1a;Model&#xff0c;模型层&#xff0c;指工程中的JavaBean&#xff0c;作用是处理数据 JavaBean分为两类&#xff1a; 一类称为实体类Bean&#xff1a…

web渗透安全学习笔记:2、HTML基础知识

目录 前言 HTML的标题 段落链接与插入图片 HTML元素 HTML属性 HTML头部 HTML与CSS HTML与JavaScript 表格与列表 HTML区块 布局 HTML表单 HTML与数据库 音频与视频 HTML事件 前言 HTML的标题 <!DOCTYPE html> <html> <head> <meta chars…

yum配置文件及NFS共享

一 yum配置文件及命令 1 /etc/yum.conf //主配置文件 2 /etc/yum.repos.d/*.repo //yum仓库文件位置 写错一个字母就不行&#xff0c;可以ping www.google.com 测试网络 3 /var/log/yum.log //日志文件 二 yum命令 1 [rootlocalhost ~…

分布式锁的产生以及使用

日常开发中&#xff0c;针对一些需要锁定资源的操作&#xff0c;例如商城的订单超卖问题、订单重复提交问题等。 都是为了解决在资源有限的情况限制客户端的访问&#xff0c;对应的是限流。 单节点锁问题 目前针对这种锁资源的情况采取的往往是互斥锁&#xff0c;例如 java 里…

【LeetCode: 295. 数据流的中位数 + 堆】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

list列表可编辑状态

有时候list需要修改或选择属性,mfc自带的只能显示内容,基本上是不可以修改,为了实现这个功能需求,需要完成一下步骤转换. 第一步记录选择的单元格. 第二步创建一个编辑框CComboBox对象, 设置字体,窗口属性. 第三步获取选中单元格的位置信息. 第四步获取单元格内容信息. 第五步…