当前位置: 首页 > 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…...

Chrome-Charset:3步彻底解决网页乱码问题,告别天书般的浏览体验![特殊字符]

Chrome-Charset&#xff1a;3步彻底解决网页乱码问题&#xff0c;告别天书般的浏览体验&#xff01;&#x1f680; 【免费下载链接】Chrome-Charset An extension used to modify the page default encoding for Chromium 55 based browsers. 项目地址: https://gitcode.com/…...

告别数据锁定:用youdaonote-pull实现有道云笔记的本地化自由

告别数据锁定&#xff1a;用youdaonote-pull实现有道云笔记的本地化自由 【免费下载链接】youdaonote-pull &#x1f4dd; 一个一键导出 / 备份「有道云笔记」所有笔记的 Python 脚本。 A Python script to export/backup all the notes of the "Youdao Note". 项目…...

终极密码学工具箱ToolsFx:30+编码转换与一键解码的完整解决方案

终极密码学工具箱ToolsFx&#xff1a;30编码转换与一键解码的完整解决方案 【免费下载链接】ToolsFx 跨平台密码学工具箱。包含编解码&#xff0c;编码转换&#xff0c;加解密&#xff0c; 哈希&#xff0c;MAC&#xff0c;签名&#xff0c;大数运算&#xff0c;压缩&#xff0…...

[SSD]SSD主控

SSD系统架构SSD系统由一块CPU主控&#xff0c;可以是ARM或者RISC-v&#xff1b;整个主控芯片分为三个部分&#xff0c;分别是主机接口控制器&#xff0c;缓存控制器和闪存控制器&#xff0c;它可以分为前端和后端&#xff0c;前端就是主机接口控制器和主机之间的通信&#xff0…...

紧急更新!Midjourney v6.6对洛可可风格支持突降37%?立即启用这5个兼容性补丁prompt,保住你的商业项目交付期

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney v6.6洛可可风格兼容性危机全景速览 Midjourney v6.6 发布后&#xff0c;大量用户在生成洛可可&#xff08;Rococo&#xff09;风格图像时遭遇显著退化&#xff1a;繁复卷曲的藤蔓纹样被简化…...

教育科技项目如何通过Taotoken平衡AI功能效果与接口成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 教育科技项目如何通过Taotoken平衡AI功能效果与接口成本 在在线教育或培训类应用的开发与运营中&#xff0c;文本生成与总结功能已…...

ComfyUI-Impact-Pack V8:AI图像增强的模块化革命与智能内存管理

ComfyUI-Impact-Pack V8&#xff1a;AI图像增强的模块化革命与智能内存管理 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. 项目地址:…...

别再混淆了!一张图看懂SAP特殊采购类40、70、80的核心区别与适用场景

深度解析SAP特殊采购类40/70/80&#xff1a;业务逻辑与实战选型指南 引言 在SAP供应链管理的复杂生态中&#xff0c;特殊采购类&#xff08;Special Procurement Type&#xff09;是连接多工厂协同的神经中枢。当企业面临跨工厂物料调配、集中采购或分布式生产等场景时&#xf…...

从宿舍区隔离到无线网配置:手把手教你用Cisco Packet Tracer实现企业级网络策略

企业级网络隔离与无线接入实战&#xff1a;Cisco Packet Tracer全流程配置指南 在数字化转型浪潮中&#xff0c;网络架构设计已成为企业IT基础设施的核心竞争力。想象这样一个场景&#xff1a;某科技园区需要为研发部门、行政部门和访客区域构建差异化的网络访问策略——研发数…...

Mac/Win双平台保姆级教程:从零配置ADB环境到连接真机/模拟器

Mac/Win双平台保姆级教程&#xff1a;从零配置ADB环境到连接真机/模拟器 第一次接触Android开发或测试时&#xff0c;配置ADB环境往往是让人头疼的第一步。不同操作系统、不同设备品牌、不同模拟器之间的差异&#xff0c;让很多新手在"adb devices"命令前败下阵来。…...