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

C++ 比C语言增加的新特性 5 之字符串string

1.  c++ 的string类型

1.1 创建和初始化字符串

string.cpp

#include "iostream"
#include <string>using namespace std;//创建和初始化字符串
int main() {// 初始化空字符串string emptyString;// 使用字符串字面量初始化字符串string greeting = "hello, ";// 连接字符串string name = "world";string message = greeting + name;cout << message << endl;  // 输出 "hello,world"return 0;
}

2 字符串操作

2.1 计算长度,判断空,访问单个字符

string.cpp

//字符串操作
int main() {string str = "C++ Programming";// 获取字符串长度cout << "Length: " << str.length() << endl; //15// 检查字符串是否为空if (!str.empty()) {cout << "Not empty" << endl;}// 访问单个字符char firstChar = str[8];cout << "First character: " << firstChar << endl;// 修改字符串str[8] = 'P';cout << "Modified string: " << str << endl;return 0;
}

2.2   at()函数

用于访问字符串中指定位置的字符。与使用数组下标访问字符不同的是,at() 函数会检查索引是否越界,如果越界则抛出 std::out_of_range 异常。

string.cpp

//at()函数
int main() {string myString = "Hello,World!";try {//普通方法访问单个字符char str = myString[1];cout << "下标1的字符是:" << str << endl;// 使用at()函数访问指定位置的字符char character = myString.at(4);//访问下标为7的字符   ocout << "Character at position 7: " << character << endl;// 尝试访问越界的位置char outOfRange = myString.at(20);  // 这里会抛出 std::out_of_range 异常}catch (const std::out_of_range& e) {cerr << "异常信息为: " << e.what() << endl;}return 0;
}

2.3 字符串查找和截取

string.cpp

//字符串查找和截取
int main() {string sentence = "The quick brown fox jumps over the lazy dog";// 查找子字符串size_t found = sentence.find("fox");if (found != string::npos) {cout << "开始的下标为: " << found << endl;  //16开始}// 截取子字符串string substring = sentence.substr(16, 5);  // "brown"cout << "Substring: " << substring << endl; //fox jreturn 0;
}

2.4 append() 函数:

用于在字符串末尾追加另一个字符串。

std::string str1 = "Hello";
std::string str2 = " World";
str1.append(str2);  // 在 str1 的末尾追加 str2

2.5 字符串比较:

== 运算符:

用于比较两个字符串是否相等

std::string str1 = "Hello";
std::string str2 = "World";
if (str1 == str2) {// 字符串相等
} else {// 字符串不相等
}

<, >, <=, >= 运算符:

这些运算符用于直接比较字符串的大小关系。

返回的结果是布尔值(true 或 false)。

这些运算符比较的是字符串的字典序(按照字符的ASCII码值进行比较)。

compare() 函数:

compare() 函数返回一个整数,表示两个字符串的比较结果。

返回值为 0 表示字符串相等,小于 0 表示调用该函数的字符串小于参数字符串,大于 0 表示调用该函数的字符串大于参数字符串。

可以通过比较返回值的大小来确定字符串的大小关系。

string.cpp

//字符串比较
int main()
{string str1 = "Hello";string str2 = "World";if (str1 == str2) {// 字符串相等cout << "相等" << endl;}else {// 字符串不相等cout << "不相等" << endl;}int ret = str1.compare(str2);  //这里的compare判断的是字符大小if (ret==0) {cout << "str1 等于 str2" << endl;}else if (ret<0) {cout << "str1 小于 str2"<<endl;}else {cout << "str1 大于 str2" << endl;}if (str1 < str2) {// str1 小于 str2cout << "str1 小于 str2" << endl;}else if (str1 > str2) {// str1 大于 str2cout << "str1 大于 str2" << endl;}else {// 字符串相等cout << "str1 等于 str2" << endl;}return 0;
}

相关文章:

C++ 比C语言增加的新特性 5 之字符串string

1. c 的string类型 1.1 创建和初始化字符串 string.cpp #include "iostream" #include <string>using namespace std;//创建和初始化字符串 int main() {// 初始化空字符串string emptyString;// 使用字符串字面量初始化字符串string greeting "hello, …...

【第2讲】原理介绍和权限开通

系列文章目录 第1讲:Python环境的下载和安装第2讲:免费开通权限第3讲:1行代码,自动发正文第4讲:1行代码,自动发正文+附件第5讲:自动批量发送第6讲:1行代码,自动下载邮件的附件提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录…...

C++ opencv-3.4.1 提取不规则物体的轮廓

在学习opencv的时候&#xff0c;对一张照片&#xff0c;需要标注照片上物体的不规则轮廓。 如图: 使用opencv进行物体的轮廓处理&#xff0c;关键在于对照片的理解&#xff0c;前期的照片处理的越好最后调用api出来的结果就越接近理想值。 提取照片中物体分如下三步&#xff…...

ServletConfig对象.

是什么 ServletConfig是javax.servlet.包下的一个接口&#xff0c;ServletConfig它是Servlet的一个配置对象&#xff1b; ServletConfig是由tomcat容器创建&#xff0c;通过init方法传入给Servlet&#xff1b; ServletConfig对象如何获取? 在GenericServlet里面定义了&#x…...

jQuery实现框里画面的展开、收起和停止

jQuery实现框里画面的展开、收起和停止 主要用到动画效果中的三个操作&#xff1a; (“id”).slideDown(3000)&#xff1b; // 后面的数字表示效果的时长 (“id”).stop(); (“id”).slideUp(3000); 效果图 代码如下&#xff1a; <!DOCTYPE html> <html lang"en…...

less 查看文本时,提示may be a binary file.See it anyway?

解决办法 首先使用echo $LESSCHARSET查看less的编码 看情况设置less的编码格式(我的服务器上使用utf-8查看中文) 还要特别注意一下&#xff0c;Linux中存在的文本文件的编码一定要是utf - 8;&#xff08;这一步很关键&#xff09; 例如&#xff1a;要保证windows上传到Linux的…...

H266/VVC帧内预测编码技术概述

预测编码技术 预测编码&#xff08;Prediction Coding&#xff09;是指利用已编码的一个或多个样本值&#xff0c;根据某种模型或方法&#xff0c;对当前的样本值进行预测&#xff0c;并对样本真实值和预测值之间的差值进行编码。 视频中的每个像素看成一个信源符号&#xff…...

重组蛋白表达系统的比较-卡梅德生物

一、重组蛋白表达是什么&#xff1f; 重组蛋白表达是通过基因工程手段将目标蛋白基因导入宿主细胞&#xff0c;使其表达出特定的蛋白。该过程包括以下步骤&#xff1a; 1. 构建表达载体&#xff1a;将目标蛋白基因插入表达载体中&#xff0c;通常选择带有启动子、终止子和选择…...

【Java、Python】获取电脑当前网络IP进行位置获取(附源码)

我相信看到这篇博客的时候心里肯定是想解决自己的一个问题的&#xff0c;而这篇博客我就以简单快速的方式解决这些烦恼&#xff01; 一、获取当前IP 在Java中自带了一些自己的流对象来获取当前的IP地址&#xff0c;不多说我们直接上代码。 //获取当前网络ip地址 ipAddress Ine…...

接口测试学习笔记

文章目录 认识urlhttp协议接口规范Postman实现接口测试设计接口测试用例使用软件发送请求并查看响应结果Postman 自动关联Postman如何提交multipart/form-data请求数据Postman如何提交查询参数Postman 如何批量执行用例单接口测试Postman 断言Postman参数化 接口测试自动化requ…...

一起玩儿物联网人工智能小车(ESP32)——14. 用ESP32的GPIO控制智能小车运动起来(二)

摘要&#xff1a;本文主要讲解如何使用Mixly实现对单一车轮的运动控制。 下面就该用程序控制我们的小车轮子转起来了。打开Mixly软件&#xff0c;然后单击顶部“文件”菜单中的“新建”功能&#xff0c;我们来开启一个新程序的开发工作。 我们的工作同样是先从最简单的开始&am…...

[PyTorch][chapter 8][李宏毅深度学习][DNN 训练技巧]

前言&#xff1a; DNN 是神经网络的里面基础核心模型之一.这里面结合DNN 介绍一下如何解决 深度学习里面过拟合,欠拟合问题 目录&#xff1a; DNN 训练常见问题 过拟合处理 欠拟合处理 keras 项目 一 DNN 训练常见问题 我们在深度学习网络训练的时候经常会遇到下面…...

Nginx快速入门:实现企业安全防护|nginx部署https,ssl证书(七)

0. 引言 之前我们讲到nginx的一大核心作用就是实现企业安全防护&#xff0c;而实现安全防护的原理就是通过部署https证书&#xff0c;以此实现参数加密访问&#xff0c;从而加强企业网站的安全能力。 nginx作为各类服务的统一入口&#xff0c;只需要在入口处部署一个证书&…...

将Go语言开发的Web程序部署到K8S

搭建K8S基础环境 如果已经有K8S环境的同学可以跳过&#xff0c;如果没有&#xff0c;推荐你看看我的《Ubuntu22加Minikue搭建K8S环境》&#xff0c;课程目录如下&#xff1a; Ubuntu22安装Vscode 下载&#xff1a;https://code.visualstudio.com/Download 安装命令&#…...

Python发送数据到Unity实现

Unity设置: 打开Unity项目。创建一个空的GameObject&#xff0c;并附加一个新的脚本TCPReceiver using System.Net; using System.Net.Sockets; using System.Text; using UnityEngine; using System.Threading;public class MyListener : MonoBehaviour {Thread thread;pub…...

Unity 渲染顺序受哪些影响(相机depth、SortingLayer、Render Queue、透明)

目录 相机深度&#xff08;Camera Depth&#xff09; Clear Flags 多相机渲染不同部分 SortingLayer 先后顺序 Render Queue Render Queue的作用 Render Queue的分类 GeometryLast&#xff08;值为2500&#xff09; 渲染顺序总结 相机深度&#xff08;Camera Depth&am…...

【论文笔记】Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks

论文地址&#xff1a;Run, Dont Walk: Chasing Higher FLOPS for Faster Neural Networks 代码地址&#xff1a;https://github.com/jierunchen/fasternet 该论文主要提出了PConv&#xff0c;通过优化FLOPS提出了快速推理模型FasterNet。 在设计神经网络结构的时候&#xff…...

python常用函数汇总

python常用函数汇总 对准蓝字按下左键可以跳转哦 类型函数数值相关函数abs() divmod() max() min() pow() round() sum()类型转换函数ascii() bin() hex() oct() bool() bytearray() bytes() chr() complex() float() int() 迭代和循环函数iter() next() e…...

阶段十-物业项目

可能遇到的错误&#xff1a; 解决jdk17javax.xml.bind.DatatypeConverter错误 <!--解决jdk17javax.xml.bind.DatatypeConverter错误--><dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>…...

使用 Jekyll 构建你的网站 - 初入门

文章目录 一、Jekyll介绍二、Jekyll安装和启动2.1 配置Ruby环境1&#xff09;Windows2&#xff09;macOS 2.2 安装 Jekyll2.3 构建Jekyll项目2.4 启动 Jekyll 服务 三、Jekyll常用命令四、目录结构4.1 主要目录4.2 其他的约定目录 五、使用GitLink构建Jekyll博客5.1 生成Jekyll…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...