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

C++基础篇——string 类型

一、string 类简介

string 类型是一个标准库中的类型,代表一个可变长字符串。

原来在 C 语言里,一般会用字符数组来表示字符串

char str[100] = "I love China";

而在 C++ 中,由于 string 类型提供了更多的操作字符串的方法,故更多的使用 string。

字符数组和 string 类型之间是可以相互转换的。

二、定义和初始化 string 对象

string s1;    //默认初始化,代表一个空串

string s2 = "I love China!";    //将字符串复制到了 s2 代表的一段内存中

string s3("I love China!");    

string s4 = s2;    //把 s2 中的内容复制到了 s4 所代表的一段内存中

int num = 6;
string s5(num, 'a')    //把 s5 初始化为连续 num 个字符 'a' 组成的字符串

三、string 对象上的常用操作 

1)判断是否为空 empty(),空则返回1。

string s1;
if(s1.empty()){
    cout << "s1为空" << endl;
}

2)size() 或 length():返回字节/字符数量

string s1;
cout << s1.size() << endl;    //0

string s2 = "我爱中国";
cout << s2.size() << endl;    //8,一个汉字 2 字节

3)s.c_str():返回一个字符串 s 中的内容指针。

string s1 = "abc";
string s2 = "abC";

const char* p = s2.c_str();    //现在 p 指向 s2 里的字符串

char str[100];
strcpy_s(str, sizeof(str), p);    //字符串内容复制到 str 中

cout << str << endl;    //abC

4) 范围 for 针对 string 的使用

string s1 = "I love China!";
for(auto c:s1)    //这里 c 的类型其实就是 char
{
    cout << c << endl;    //每次输出一个字符,后边跟一个换行
}

还可以通过引用来修改 s1 的值。

string s1 = "I love China";
const char* p = s1.c_str();

for (auto& c : s1)
{
    c = toupper(c);    //这里改变 c 其实就是改变 s
}
cout << s1 << endl;    //I LOVE CHINA


http://www.kler.cn/a/503242.html

相关文章:

  • Windows核心编程—匿名管道双向通信
  • 计算机视觉算法实战——步态识别(主页有源码)
  • 深度学习笔记11-优化器对比实验(Tensorflow)
  • java小知识点总结
  • 【文件锁】多进程线程安全访问文件demo
  • Blazor中Syncfusion Word组件使用方法
  • 【C盘清理】C盘清理工具、Unity缓存文件转移
  • CMU卡内基梅隆大学「软体机器人动态手旋转笔」
  • docker-compose部署kafka 3.3.1 kraft
  • 计算机网络之---DNS协议
  • 《使用人工智能心脏磁共振成像筛查和诊断心血管疾病》论文精读
  • 【STM32-学习笔记-4-】PWM、输入捕获(PWMI)
  • 基于微信小程序的汽车销售系统的设计与实现springboot+论文源码调试讲解
  • IntelliJ IDEA Type Hierarchy Scope Pattern 学习指南
  • qt 窗口(window/widget)绘制/渲染顺序 QPainter QPaintDevice Qpainter渲染 失效 无效 原因
  • 【Python项目】图像信息隐藏技术的实现
  • Python入门10:高阶函数
  • MERN全栈脚手架(MongoDB、Express、React、Node)与Yeoman详解
  • 力扣152. 乘积最大子数组
  • pytorch nn.Dropout类介绍
  • 04.计算机体系三层结构与优化(操作系统、计算机网络、)
  • Vue JavaScript 小写数字金额转换成大写汉字(附编程思路)
  • 简识MySQL的InnoDB Locking锁的分类
  • ue5 设置角色属性(生命值,蓝条值,能量值)c++
  • 基于WebRTC实现音视频通话
  • day01-HTML-CSS——基础标签样式表格标签表单标签