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.hqwc.cn/news/418573.html

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

相关文章

Helm Dashboard — Kubernetes 中管理 Helm 版本的 GUI

Helm Dashboard 通过提供图形用户界面&#xff0c;使在 Kubernetes 中管理 Helm 版本变得更加容易&#xff0c;这是许多开发人员所期望的。它可用于在 Kubernetes 中创建、部署和更新应用程序的版本&#xff0c;并跟踪其状态。 本文将探讨 Helm Dashboard 提供的特性和优势&am…

基于Spring+mybatis+vue的饮食分享系统(Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

Flutter首页框架搭建

1.下载flutter 2. 安装android 3.配置环境变量 关于环境搭建部分&#xff0c;哪天写一下&#xff0c;日志杂乱无章。 打开android studio 新建项目&#xff0c;选择flutter 新建文件夹创建 navigator和pages 文件夹下分别创建文件&#xff0c;tab_navigator.dart&#xff…

《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(19)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置&#xff08;18&#xff09; 2.4 PCI总线的配置 PCI总线定义了两类配置请求&#xff0c;一个是Type 00h配置请求&#xff0c;另一个是Type 01h配置请求。PCI总线使用这些配置请求…

c# 视频播放之Vlc.DotNet.Forms

先说下优缺点 优点&#xff1a;与电脑无关&#xff0c;能播放主流编码格式视频。 缺点&#xff1a;只能播放本地视频&#xff0c;网络视频播放不了。 下面是具体操作和代码 1. 安装Vlc.DotNet.Forms 和 VideoLAN.LibVLC.Windows Vlc.DotNet.Forms 是播放库&#xff0c;Vid…

找不到mfc100.dll的解决方法,怎么修复mfc100.dll文件

当我们在使用电脑时&#xff0c;时常可能会遇到各类系统提示的错误信息。"找不到mfc100.dll" 就是这些错误之一&#xff0c;该错误提示会妨碍我们执行一些应用程序或特定代码。为了帮助读者克服这个技术障碍&#xff0c;本篇文章将详尽阐明导致该问题的根本原因&…

Flink(十三)【Flink SQL(上)SqlClient、DDL、查询】

前言 最近在假期实训&#xff0c;但是实在水的不行&#xff0c;三天要学完SSM&#xff0c;实在一言难尽&#xff0c;浪费那时间干什么呢。SSM 之前学了一半&#xff0c;等后面忙完了&#xff0c;再去好好重学一遍&#xff0c;毕竟这玩意真是面试必会的东西。 今天开始学习 Flin…

Pandas.Series.count() 非空单元格计数 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本&#xff1a; 本文基于 pandas2.1.2 编写。 关于本文内容更新&#xff1a; 随着pandas的stable版本更迭&#xff0c;本文持续更新&#xff0c;不断完善补充。 Pandas稳定版更新及变动内容整合专题&#xff1a; Pandas稳定版更新及变动迭持续更新。 Pandas API参…

对象数组变成一维数组,导出txt文件

假设对象数组格式为此 arr1: [{id: 1,title: 我是1目录,children: [{id: 11,title: 我是1-1目录,children: [{id: 111,title: 我是1-1-1目录,children: [],},],},],},{id: 2,title: 我是2目录,children: [{id: 21,title: 我是2-1目录,children: [],},],},], 页面如下 先在页面…

WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试)

接口测试与数据驱动 1简介 数据驱动测试&#xff0c;即是分离测试逻辑与测试数据&#xff0c;通过如excel表格的形式来保存测试数据&#xff0c;用测试脚本读取并执行测试的过程。 2 数据驱动与jmeter接口测试 我们已经简单介绍了接口测试参数录入及测试执行的过程&#xff0…

HNU-计算机网络-实验5(自选)-安全相关编程实验

计算机网络 课程综合实验安全相关编程实验&#xff08;RUST&#xff09; 计科210X 甘晴void 202108010XXX 【前言】 这个《课程综合实验》是21级开始新加的实验&#xff0c;之前都没有。具体的可以看实验指导书&#xff0c;是用的19级同学的毕设。我完成的这个实验需要一点点R…

25计算机考研408专业课复习计划

点击蓝字&#xff0c;关注我们 今天要分享的是25计算机考研408专业课复习计划。 以下内容供大家参考&#xff0c;大家要根据自己的复习情况进行适当调整。 统考与自命题 统考科目是指计算机学科专业基础综合&#xff08;408&#xff09;&#xff0c;满分150分&#xff0c;试…