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

C++字符串:使用 std::string

C++字符串:使用 std::string

初始化方法一
std::string 变量名称 { “字符串”};

std::string str { " 这是一个字符串" };std::cout << str;
std::cin >> str;

初始化方法二
std::string 变量名称 { “字符串”, 要截取的长度};

std::string str2 { "abcde", 3};
std::cout << str2 << std::endl; // abc
std::string str3 { "这是一个字符串", 4};
std::cout << str3 << std::endl; // 这是

注意:截取的数据代表字节数,一个汉字是两个字节。

初始化方法三
std::string 变量名称 { “字符串”,起始位置, 要截取的长度};

std::string str4 { "abcde", 1,  3};
std::cout << str4 << std::endl; // bcd

注意:截取的数据代表字节数,一个汉字是两个字节。

初始化方法四
std::string 变量名称 (要复制的个数,‘字符’);

std::string str5 {6, 'a'};

无论是处理文本输入,还是执行拼接等字符串操作,使用 C++标准字符串都是更高效、更安全的方式。不同于字符数组( C 风格字符串实现),std::string 是动态的,在需要存储更多数据时其容量将增大。

string类是basic_string类模板的实例化,该模板使用char作为其字符类型,并具有默认的char_traits和allocator类型。

以下示例程序演示了如何使用 std::string 来操作字符串数据:

#include <iostream>
#include <string>using namespace std;int main()
{string greetStrings ("Hello std::string!");cout << greetStrings << endl;cout << "Enter a line of text: " << endl;string firstLine;getline(cin, firstLine);cout << "Enter another: " << endl;string secondLine;getline(cin, secondLine);cout << "Result of concatenation: " << endl;string concatString = firstLine + " " + secondLine;cout << concatString << endl;cout << "Copy of concatenated string: " << endl;string aCopy;aCopy = concatString;cout << aCopy << endl;cout << "Length of concat string: " << concatString.length() << endl;return 0;
}

输出:

Hello std::string!
Enter a line of text:
I love
Enter another:
C++ strings
Result of concatenation:
I love C++ strings
Copy of concatenated string:
I love C++ strings
Length of concat string: 18

分析:

请尝试将输出与代码关联起来,现在暂时不要管其中的新语法。该程序首先显示一个字符串,该字符串在第 7 行被初始化为 “Hello std::string”。接下来,它让用户输入两行文本,并将它们分别存储在变量 firstLine 和 secondLine 中,如第 12 和 16 行所示。字符串拼接非常简单,看起来很像算术加法运算,如第 19 行所示。这里还在两行之间添加了一个空格。复制也很简单,只需赋值即可,如第 24
行所示。第 27 行对字符串调用 length( ),以确定其长度。

注意:

要使用 C++字符串,需要包含头文件 string:
#include <string>
如示例程序的第 1 行所示。

该文章会更新,欢迎大家批评指正。

推荐一个零声学院免费公开课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容,点击立即学习:
服务器课程:C++服务器

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

相关文章:

  • 目前Java后端就业前景怎么样?
  • C语言基础(持续更新)
  • 从源码层面深度剖析Spring循环依赖 | 京东云技术团队
  • Distance 2023牛客暑期多校训练营6 B
  • 【Pandas】学习笔记之groupby()、agg()、transform()
  • 使用正则表达式 移除 HTML 标签后得到字符串
  • Java中String方法魔性学习
  • Smartbi 权限绕过漏洞复现(QVD-2023-17461)
  • springboot自定义错误消息
  • 微信小程序申请步骤
  • 嘉楠勘智k230开发板上手记录(四)--HHB神经网络模型部署工具
  • 微信小程序的自定义TabBar及Vant的使用
  • canvas实现代码雨
  • 基于MFCC特征提取和HMM模型的语音合成算法matlab仿真
  • 多重网格算法的cuda编程
  • DP(状态机模型)
  • 按照指定的文件顺序进行scp传输
  • 小红书数据分析丨现实版模拟人生,这届网友热衷于“云开店”?
  • 休闲卤味强势崛起:卤味零食成为新一代热门美食
  • 自除数-C语言
  • -bash: ./startup.sh: Permission denied解决
  • Java课题笔记~ AOP 概述
  • 真我V3 5G(RMX2200 RMX2201)解锁刷机全过程
  • springCache-缓存
  • 【solon生态】- solon.cloud.micrometer插件使用指南及micrometer详解
  • 【Spring Boot】Thymeleaf模板引擎 — Thymeleaf的高级用法
  • 用html+javascript打造公文一键排版系统13:增加半角字符和全角字符的相互转换功能
  • 元宇宙3D数字虚拟客服打造年轻化、数字化营销新品牌
  • micromamba快速安装(windows版本)
  • HTML <source> 标签