C++ 字符串学习资料

news/2024/7/24 3:49:29 标签: c++, 开发语言

C++ 字符串学习资料

目录

  • 什么是字符串?
  • 字符串的声明和初始化
  • 字符串的常见操作
  • 字符串的输入和输出
  • 字符串的比较和连接
  • 字符串的搜索和替换
  • 字符串的转换和子串提取

什么是字符串?

在 C++ 中,字符串是由字符组成的序列,用于表示文本数据。字符串是一种常用的数据类型,可以用于存储和操作文本信息。

字符串的声明和初始化

要声明一个字符串变量,可以使用 std::string 类型。以下是一些声明和初始化字符串的示例:

// 声明一个空字符串
std::string str;

// 声明并初始化一个字符串
std::string greeting = "Hello, world!";

// 使用字符数组初始化字符串
char name[] = "John";
std::string fullName(name);

字符串的常见操作

C++ 提供了许多用于操作字符串的方法和函数。以下是一些常见的字符串操作示例:

std::string str = "Hello, world!";

// 获取字符串长度
int length = str.length();

// 获取字符串中的字符
char firstChar = str[0];

// 连接两个字符串
std::string fullName = str + " Smith";

// 获取子串
std::string substr = str.substr(7, 5); // 从索引 7 开始获取长度为 5 的子串

字符串的输入和输出

可以使用标准输入输出流来读取和输出字符串。以下是一些字符串的输入和输出示例:

std::string name;

// 从标准输入读取字符串
std::cout << "Enter your name: ";
std::cin >> name;

// 输出字符串到标准输出
std::cout << "Hello, " << name << "!";

字符串的比较和连接

可以使用比较运算符来比较两个字符串的大小关系。此外,可以使用 + 运算符来连接两个字符串。

以下是一些字符串比较和连接的示例:

std::string str1 = "Hello";
std::string str2 = "World";

// 比较两个字符串的大小
if (str1 == str2) {
    std::cout << "Strings are equal";
} else {
    std::cout << "Strings are not equal";
}

// 连接两个字符串
std::string result = str1 + " " + str2;

字符串的搜索和替换

可以使用字符串的搜索和替换函数来查找和替换特定的子串。

以下是一些字符串搜索和替换的示例:

std::string str = "Hello, world!";

// 搜索子串的位置
int position = str.find("world");

// 替换子串
str.replace(position, 5, "John");

字符串的转换和子串提取

C++ 提供了许多用于字符串转换和子串提取的函数。这些函数可以将字符串转换为数字、提取特定位置的字符等。

以下是一些字符串转换和子串提取的示例:

std::string str = "42";

// 将字符串转换为整数
int number = std::stoi(str);

// 提取字符串的子串
std::string sub = str.substr(0, 1); // 提取第一个字符

这些是 C++ 字符串的基本知识和常见操作。通过深入学习字符串,你可以更好地处理和操作文本数据。记得进行实践和练习,加深对字符串的理解和掌握。


http://www.niftyadmin.cn/n/5170874.html

相关文章

Android底层开发Quick Start

[Kernel配置文件] 根据编译产物out/target/product/trinket/obj/kernel/msm-4.14/.config的宏CONFIG_ARCH_TRINKET kernel/msm-4.14/arch/arm64/configs$ grep -rin CONFIG_ARCH_TRINKET 找到 kernel/msm-4.14/arch/arm64/configs/vendor/trinket-perf_defconfig kernel/msm-4.…

AI系统ChatGPT源码+详细搭建部署教程+AI绘画系统+支持GPT4.0+Midjourney绘画+已支持OpenAI GPT全模型+国内AI全模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

修复img实际有正确的链接,但是不显示 (chrome 插件保存的html)--google镜像chatgpt

打开目标html文件 chrome 控制台 执行以下脚本 //删除侧边栏 $x("//div[idsidebar]")[0].remove();//修复img实际有正确的链接&#xff0c;但是不显示 (chrome 插件保存的html&#xff09; //img.data-savepage-src 复制到 img.src imgs$x("//img"); imgs…

Android jetpack compose 组件学习

官网地址&#xff1a;https://developer.android.com/jetpack/compose/tutorial?hlzh-cn 一、写一个 hello world 在New Project的时候选择Photo and Tablet里的Empty Compose Activity&#xff0c;如下所示&#xff1a; 打开这个project之后&#xff0c;可以看到MainActivit…

C++ 数组学习资料

C 数组学习资料 目录 什么是数组&#xff1f;声明和初始化数组访问数组元素多维数组数组和指针常见的数组操作数组的限制和注意事项 什么是数组&#xff1f; 在 C 中&#xff0c;数组是一种用于存储相同类型元素的数据结构。它是一个固定大小的连续内存块&#xff0c;每个元…

RustRover里使用AI通义灵码来写代码

AI通义灵码我选择RustRover里的 plugin进行下载使用 然后我们就提问好了&#xff1a;让他用c语言写一个冒泡排序程序 #include <stdio.h>void bubble_sort(int arr[], int size) {int i, j, temp;for (i 0; i < size - 1; i) {for (j 0; j < size - i - 1; j) {i…

@ConfigurationProperties使用

一直有个疑问,在使用ConfigurationProperties注解作用一个配置类时,如果该配置类继承了一个父类,那么父类的那些配置字段是否可以读取配置信息。 答案是可以的&#xff0c;前提是父类对应字段的set方法是public。 BaseProperties.java Getter Setter public class BasePropert…