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

【类型商店】字符字符串(下)

啊,哈喽,小伙伴们大家好。我是#Y清墨,今天呐,我要介绍的是字符与字符串。 

导语

前两期,我们已经懂得了概念,今天来看些函数。

正题

一.增加或连接 +=

(1) 后面增加(+=)
string s1,s2;   //定义 s1,s2 串s1=”abcd”;  //s2 后面增加 s1s2 += s1;cout<<s2<<endl;// 输出1s1 += s2;cout<<s1<<endl;// 输出2

 

输出1:abcd

输出2: abcdabcd

(2) 连接(+)
string s1,s2;  //定义 s1,s2 串s1="abcd";  //赋值s2="xyz";  //赋值s1=s2+"1234";  //连接后给 s1cout<<s1<<endl;// 输出3cout<<s1+"*"+s2;// 输出4

 

输出3:xyz1234

输出4: xyz1234*xyz

(3) 常见错误
s1 = "abcd"+"xyz";

 

错误信息 :

[Error]   invalid   operands   of   types…… 'operator+'

 

错误原因:

"常量字符串" 之间不可以相加,"+" 号,两边至少要有一个 string 类型的变量。

二.查找子串 find

(1) find
//在 s1 中找 s2 的出现的第一个位置为3(下标从0开始)
//没有找到子串, 则结果为-1string s1="abcdabcd";string s2="da";string s3=”abx”;cout<< s1.find(s2)<<endl; //输出5if( s1.find(s3)==-1)  //输出6cout<<"not find s3"<<endl;else cout<<"find s3"<<endl;

 

输出5:3

输出6: not find s3

(2) 扩展

//从 s1 的第 2 个位置开始向后找"ab",输出找到的位置
string s1="abcdabcd";cout<<s1.find("ab",2)<<endl;  //输出7

 

输出7: 4

三.取子串(substr)

(1) substr
string s1="abcdabcd";  //赋值cout<<s1.substr(2)<<endl;  //从位置 2 开始,一直截取到最后, 返回的是 cdabcdcout<<s1.substr(2,3)<<endl; //从位置 2 开始,截取长度是 3 的子串,返回的是 cdacout<<s1.substr(3,4)<<endl;  //从位置 3 开始,截取长度是 4 的子串, 返回的是 dabccout<<s1.substr(3,20);  //从位置3开始,截取长度是 20 的子串,由于超过 s1 的 长度,只取剩下的,所以返回 dabcd

 

substr(位置,长度); 第二个参数可有可无,当没有第二个参数的时候,就从开始位置到结束全部取

(2)常见错误
string s1="abcdabcd";
int i=30;   
cout<<s1.substr(i)<<endl;  //当第一个位置参数超出"字符串长度-1"时, 会出错!cout<<s1.substr(i,2)<<endl;  //i太大,同样会出错!

 

四. 比较(>,<...)

  1. string 类的比较大小非常简单:直接用 > , < , >= , <= , != , == 关系运算就可以了。如: if ("abc">s1) ... .

  2. 如果是char数组,则需要使用 strcmp(s1,s2)函数,其中 s1 和 s2 是字符 char 数组的名字。比较字符串1和字符串2的大小,比较的结果由函数带回;

    • 如果字符串1>字符串2,返回一个正整数;
    • 如果字符串1=字符串2,返回0;
    • 如果字符串1<字符串2,返回一个负整数;
http://www.lryc.cn/news/368483.html

相关文章:

  • 『 Linux 』内存管理与文件系统
  • 线性代数|机器学习-P8矩阵低秩近似eckart-young
  • 平面设计神器CorelDRAW2021精简版,你值得拥有!
  • kafka是什么?
  • ABC351
  • base上海,数据科学,数据挖掘,数据分析等岗位求收留
  • IC元器件
  • SQL159 每个创作者每月的涨粉率及截止当前的总粉丝量
  • Linux安装MySQL教程【带图文命令巨详细】
  • 外部排序快速入门详解:基本原理,败者树,置换-选择排序,最佳归并树
  • 人工智能和物联网如何结合
  • 【JAVASE】JAVA应用案例(下)
  • 【面试干货】 B 树与 B+ 树的区别
  • Socket编程权威指南(四)彻底解密 Epoll 原理
  • Windows开始ssh服务+密钥登录+默认启用powershell
  • 实体商铺私域流量打造策略:从引流到转化的全链路解析
  • 实战 | 通过微调SegFormer改进车道检测效果(数据集 + 源码)
  • 翻译《The Old New Thing》- Why do messages posted by PostThreadMessage disappear?
  • 【深度学习】—— 神经网络介绍
  • python-数字黑洞
  • SpringCloud 负载均衡 spring-cloud-starter-loadbalancer
  • 牛客周赛-46
  • 多模态vlm综述:An Introduction to Vision-Language Modeling 论文解读
  • 28.找零
  • [方法] 《鸣潮》/《原神》呼出与锁定光标的功能细节
  • 计算机网络-NAT配置与ACL
  • 哈尔滨三级等保测评需要测哪些设备?
  • 大学体育(二)(华中科技大学) 中国大学MOOC答案2024版100分完整版
  • Web前端策划:从理念到实现的全方位解析
  • 经济与安全兼顾:茶饮店购买可燃气体报警器的价格考量