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

C++字符串操作:string类与数组对比

1、使用string类时,某些操作比使用数组更加简单。例如,不能将一个数组赋值到另一个数组,但是可以将一个string类对象赋值给另一个string类对象,例如:

char charr1[20];

char charr2[20]="jaguar";

string str1;

string str2="panther";

str1=str2;

string类简化了字符串合并操作。可以使用运算符+将两个string对象合并在一起,还可以使用运算符+=将字符串附加到string对象的末尾。例如,使用上面的代码,

string str3=str1+str2;

str1+=str2;

2、string类的其他操作们

        对于字符串的行输入,字符数组和string类字符串有不同的使用方法。首先是字符数组如何进行行输入,字符数组进行行输入需要使用cin.getline()函数,这个函数有两个参数,一个是字符数组名,另一个是能进行输入的最大输入字符量。下面是示例:

#include<iostream>int main()
{char str[100];cout << "请输入一行文本:";cin.getline(str, 100);cout << "你输入的是:" <<str<< endl;return 0;
}

下面是输出结果:

请输入一行文本:The diamond is really cool.
你输入的是:The diamond is really cool.

讲解了字符数组的行输入方法,下来就是string类字符串的行输入方法了。这里需要用到一个getline()函数,这里遇上面的函数不同,这个函数的参数一个是cin,另一个则是string类字符串的名称,例如下面这样:

#include<iostream>
#include<string>int main()
{string arr;cout << "请输入一段文本:" << endl;getline(cin, arr);cout << "你输入的文本是:" << arr << endl;return 0;}

输出结果是:

请输入一段文本:
I have some delicious food.
你输入的文本是:I have some delicious food.

不过要注意的是在进行行输入之前,一定要先看看前面有没有cin>>进行输入,如果有,请一定要先做如下操作:

cin>>a;

cin.ignore().

然后在通过getline()函数行输入。恨过人就会有疑问了,为什么要这么做呢,这是因为在cin>>进行输入后,编译器只会字符提取到输入流中去,而最后的换行符就会被留在缓冲区,等待下一次输入,如果不清理掉换行符,则行输入会显示空白,导致输入失败,所以要先清理才行。最后一点是在字符数组行输入时不要超过最大输入字符输,否则导致输入不完全。

http://www.xdnf.cn/news/19890.html

相关文章:

  • MySQL知识大全
  • ansible循环+判断(with,loop,when,if,for)
  • Python爬虫进阶:面向对象编程构建可维护的爬虫系统
  • Babylon 编辑器快捷键小记
  • 零构建的快感!dagger.js 与 React Hooks 实现对比,谁更优雅?
  • Python OpenCV图像处理与深度学习:Python OpenCV DNN模块深度学习与图像处理
  • 线程安全问题及解决方案
  • 163起融资,梅卡曼德融资额夺冠,钉钉、百度智能云10周年,汉桑科技IPO| 2025年8月人工智能投融资观察 · 极新月报
  • Android --- 搭建JNI框架
  • % g++ *.cpp ...: fatal error: ‘opencv2/opencv.hpp‘ file not found 1
  • 数论常见公式定理大全
  • 无需服务器,免费、快捷的一键部署前端 vue React代码--PinMe
  • 嵌入式学习 51单片机基础
  • 《微服务协作实战指南:构建全链路稳健性的防御体系》
  • AR技术赋能风电运维:精准、高效、智能
  • 算法模板(Java版)_非负整数的高精度运算
  • 【论文阅读】Jet-Nemotron: 高效语言模型与后神经网络架构搜索
  • 研发团队缺乏统一文档模板怎么办
  • 服务器的监控和管理手段有哪些?
  • 【LeetCode牛客数据结构】单链表的应用——环形链表及链表分割问题详解
  • 【Python3教程】Python3高级篇之多线程
  • Chrome浏览器调用ActiveX控件之allWebOffice在线编辑控件
  • 记录收入最高的一次私活 选号网,需要大量卖号的人可能需要,比如游戏脚本批量跑的号
  • 电脑配置不足怎么办,告别硬件束缚,川翔云电脑
  • 从Oracle到PostgreSQL的数据库迁移
  • MySQL中binlog、redolog与undolog的不同之处解析
  • 传统大数据 Hadoop 和 云原生湖仓 Databend 对比
  • Spring MVC + JSP 项目的配置流程,适合传统 Java Web 项目开发
  • LangGraph 重要注意事项和常见问题
  • 猫头虎AI分享:无需OCR,基于ColQwen2、Qwen2.5和Weaviate对PDF进行多模态RAG的解决方案