当前位置: 首页 > 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;
}

http://www.lryc.cn/news/267874.html

相关文章:

  • 【第2讲】原理介绍和权限开通
  • C++ opencv-3.4.1 提取不规则物体的轮廓
  • ServletConfig对象.
  • jQuery实现框里画面的展开、收起和停止
  • less 查看文本时,提示may be a binary file.See it anyway?
  • H266/VVC帧内预测编码技术概述
  • 重组蛋白表达系统的比较-卡梅德生物
  • 【Java、Python】获取电脑当前网络IP进行位置获取(附源码)
  • 接口测试学习笔记
  • 一起玩儿物联网人工智能小车(ESP32)——14. 用ESP32的GPIO控制智能小车运动起来(二)
  • [PyTorch][chapter 8][李宏毅深度学习][DNN 训练技巧]
  • Nginx快速入门:实现企业安全防护|nginx部署https,ssl证书(七)
  • 将Go语言开发的Web程序部署到K8S
  • Python发送数据到Unity实现
  • Unity 渲染顺序受哪些影响(相机depth、SortingLayer、Render Queue、透明)
  • 【论文笔记】Run, Don’t Walk: Chasing Higher FLOPS for Faster Neural Networks
  • python常用函数汇总
  • 阶段十-物业项目
  • 使用 Jekyll 构建你的网站 - 初入门
  • 【数据库】postgressql设置数据库执行超时时间
  • SQL语言之DDL
  • hive高级查询(2)
  • golang的jwt学习笔记
  • 第十五节TypeScript 接口
  • 【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口?!
  • 14.bash shell中的for/while/until循环
  • RPC(6):RMI实现RPC
  • strlen和sizeof的初步理解
  • 纯CSS的华为充电动画,它来了
  • 在架构设计中,前后端分离有什么好处?