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

string的特性及使用

string这个词很容易让我们联想到str,也就是字符串,实际上string和字符串的关联性还是很强的。
很多字符串的题目都是string类的形式出现的,日常工作中为了方便使用都是用的string类,

标准string类

使用string类时,必须加上#include头文件和using namespace std
这里介绍一个关键字auto,这个中C/C++中,使用auto修饰的变量,具有自动存储器的局部变量,C++11中,auto不再是一个存储类型的指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导得到
auto和auto*每区别,使用auto声明引用类型时必须加上&
auto不可做为函数参数,但是可以做返回值,并且不能直接声明数组

#include<iostream>usingnamespacestd;intfunc1(){return10;}voidfunc2(autoa){}// 可以做返回值,但是建议谨慎使用autofunc3(){return3;}intmain(){inta=10;autob=a;autoc='a';autod=func1();autoe;cout<<typeid(b).name()<<endl;cout<<typeid(c).name()<<endl;cout<<typeid(d).name()<<endl;intx=10;autoy=&x;auto*z=&x;auto&m=x;cout<<typeid(x).name()<<endl;cout<<typeid(y).name()<<endl;cout<<typeid(z).name()<<endl;autoaa=1,bb=2;autocc=3,dd=4.0;autoarray[]={4,5,6};return0;}

for

for循环后的括号和冒号:分为两部分,第一部分是范围内用于迭代的变量。第二部表示被迭代的范围。,自动迭代,自动取数据,自动判断结束。

#define_CRT_SECURE_NO_WARNINGS#include<iostream>#include<string>#include<map>usingnamespacestd;intmain(){intarray[]={1,2,3,4,5};for(inti=0;i<sizeof(array)/sizeof(array[0]);++i){array[i]*=2;}for(inti=0;i<sizeof(array)/sizeof(array[0]);++i){cout<<array[i]<<endl;}for(auto&e:array){e*=2;}for(autoe:array){cout<<e<<" "<<endl;}stringstr("hello world");for(autoch:str){cout<<ch<<" ";}cout<<endl;return0;}

string-----构造空的string类对象,即空字符串
string(const char *s)--------用C-string来构造string类对象
string(size_t n char c)---------string 类对象中包含n个字符
string(const string &s) -------拷贝构造函数

voidTeststring(){string s1;// 构造空的string类对象s1strings2("hello bit");// 用C格式字符串构造string类对象s2strings3(s2);// 拷贝构造s3}
size返回字符串有效字符长度
length返回字符串有效字符长度
capacity空间总大小
empty检测字符串释放为空,返回true/false
clear清空有效字符
reverse为字符串预留空间
resize将有效字符的个数改成n个,多处的空间用c填充
operator返回Pos 位置的字符,const string类对象调用
begin+endbegin获取一个字符的迭代器+end获取最后一个字符下一位置的迭代器
rbegin+rendbegin获取一个字符的迭代器+end获取最后有一个字符位置的迭代器
范围forc++11支持更简洁的范围for的新遍历方式

函数名称 功能说明
push_back 在字符串后尾插字符c
append 在字符串后追加一个字符串
operator+= 在字符串后追加字符串str
c_str返回C格式字符串
find + npos 从字符串pos位置开始往后找字符c,返回该字符在字符串中的
位置
rfind 从字符串pos位置开始往前找字符c,返回该字符在字符串中的
位置
substr 在str中从pos位置开始,截取n个字符,然后将其返回

http://www.jsqmd.com/news/616337/

相关文章:

  • 2026年知名的吉林焊接钢板粮仓/吉林圆形钢板粮仓实力工厂推荐 - 行业平台推荐
  • OpenClaw免费模型推荐与配置指南!
  • 2026年评价高的微孔滤膜/聚四氟滤膜/混合纤维素酯滤膜厂家选择推荐 - 行业平台推荐
  • 2026年4月匣钵报价排行:氧化铝匣钵、耐高温匣钵、刚玉匣钵、刚玉莫来石匣钵、堇青石匣钵、莫来石匣钵、匣钵选择指南 - 优质品牌商家
  • Idiap研究院:让语音识别AI学会聆听对话历史,压缩音频记忆
  • 2026年口碑好的脱碳过滤器/海宁正压过滤器/聚丙烯过滤器/海宁板框过滤器优质公司推荐 - 行业平台推荐
  • 值类型与引用类型:别再只背“栈和堆”了,看这 个实际影响吨
  • 【国家卫健委《医疗卫生机构数据安全管理指南》强制落地倒计时】:PHP脱敏工具未升级?3类高危场景已触发监管预警!
  • OpenClaw备份策略:gemma-3-12b-it自动化数据保护方案
  • 2026年热门的辽宁钢结构/辽宁钢结构施工多家厂家对比分析 - 行业平台推荐
  • 解锁复杂系统模拟:Mesa框架全维度实战指南
  • 3.一文看懂反向传播:从单个神经元到 PyTorch 自动求导
  • 像个小丑,我花了一周把 APP 做上线,又花两小时改回本地
  • 2026ukey集中管理技术解析:u盾集中管理/网银密钥集中/网银盾安全集中/网银盾集中/ukey安全/选择指南 - 优质品牌商家
  • 加入csdn 5周年
  • C# OnnxRuntime 部署 RMBG-2.0 实现高精度背景去除
  • 2026年热门的层叠式过滤器/过滤器/海宁层叠式过滤器厂家推荐与选型指南 - 行业平台推荐
  • 动态规划——01背包问题、完全背包(python、一维DP)
  • vue数据更新了,但视图不刷新的诡异问题 this.$set
  • 当Windows 10的OneDrive无法彻底卸载时,这个批处理脚本是你的终极解决方案
  • 2026年全网视频去水印实测:6款消除字幕工具上手,哪款更适合你
  • OpenClaw个人知识库:Qwen3-4B驱动文档智能检索
  • 深圳游戏主板品牌怎么选:2026年华硕、七彩虹、技嘉、微星产品线全解析
  • Arduino RTCtime库:标准time.h兼容的DS1307/DS3231驱动
  • 鸿蒙_ArkUI组件同时支持双击和单击事件
  • FastAPI实战:WebSocket vs Socket.IO,这回真给我整明白了!侣
  • 问题解决策略基础算法实现训练1
  • 2026年浙江六甲基二硅氮烷口碑产品推荐分析,耐高温、高硬度、疏水疏油涂层/聚硅氮烷陶瓷先驱体,六甲基二硅氮烷厂家推荐 - 品牌推荐师
  • lvgl-micropython、lv_micropython和lv_binding_micropython到底啥关系?一文读懂永
  • 2026年白发养护品牌盘点:白养黑/禾亚美养发馆/禾亚美加盟/禾亚美效果/禾亚美毛发管理中心/禾亚美白发养护/禾亚美门店/选择指南 - 优质品牌商家