对于字符串,除了按照C语言的字符数组处理外,C++还提供了一种更加简单的处理方法,那就是string类。使用string类的第一步是采用#include包含头文件<string>。

接下来介绍string类型的详细用法:

先定义两个string的对象str1,str2

1、str1.length()或str1.size() :获取str1的长度

2、str1.append(str2) :把str2追加到str1后面

str1.append(str2,x,n) :把str2从第x个字符开始的n个字符追加到str1后面

str1.append(n,'z') :把n个字符z追加到str1后面

3、str2.assign(str1,x,n) :把str1从位置x开始的n个字符赋值给str2

str2.assign(n,'z') :把n个z字符赋值给str2

4、c=str1.at(n) :查找str1的第n个字符,赋值给c

5、num=str1.find(x) :查找字符x第一次出现的位置,赋值给num

6、num=str1.rfind(x) :查找字符x最后一次出现的位置,赋值给num

7、str1.replace(x,n,str2) :把str1从第x个字符开始的n个字符替换为str2

8、com=str1.compare(str2) :把str1与str2l进行比较(str1小,返回-1;str1大,返回1)

com=str1.compare(x,n,str2) :把str1从第x个字符开始的n个字符与str2进行比较

9、str2 = str1.substr(x, n) :把str1从第x个字符开始的n个字符赋值给str2

10、str1.insert(x, str2) :把str2插入到str1中,开始位置是x

str1.insert(x, n, 'z') :从str1的位置x,插入n个z

11、str1.erase(x, n) :删除str1从位置x开始的n个字符

12、str1.clear() :清空str1

13、str1.swap(str2) :交换str1与str2

下面是具体的代码示例:

# include <iostream>
# include <string>
using namespace std;
int main()
{string peoPle, aniMal, gOd, sOn;char mAn;int num, com, len;cin >> peoPle;cin >> aniMal;len = peoPle.length(); //获取peoPle的长度cout << len << endl;len = aniMal.size();   //获取aniMal的长度(同length)cout << len << endl;  peoPle.append(aniMal,2,4); //把aniMal从第二个字符开始的4个字符追加到peoPle后面cout << peoPle << endl;gOd.assign(peoPle,3,2);  //把peoPle从第3个字符开始的两个字符赋值给gOdcout << gOd << endl;gOd.assign(20,'X');     //把20个X字符赋值给gOd(覆盖上一次)cout << gOd<< endl;mAn=peoPle.at(4);       //查找位置4的字符cout << mAn << endl;num = aniMal.find('j');  //查找j第一次出现的位置cout << num << endl;num = gOd.rfind('X');   //查找X最后一次出现的位置cout << num << endl;gOd.replace(2, 5, aniMal); //把gOd从第二个字符开始的5个字符替换为aniMalcout << gOd << endl;com=peoPle.compare(aniMal); //把peoPle与aniMal进行比较(peoPle小,返回-1)cout << com << endl;com = peoPle.compare(8,2,aniMal);//把peoPle从第8个字符开始的两个字符与aniMal进行比较cout << com << endl;sOn = peoPle.substr(3, 4);  //把peoPle从第3个字符开始的4个字符赋值给soncout << sOn << endl;gOd.insert(10, peoPle);  //把peoPle插入到gOd中,开始位置是10cout << gOd << endl;    sOn.insert(2, 3, 'S');  //从sOn的位置2,插入3个Scout << sOn << endl;sOn.erase(1, 3);   //删除sOn从位置1开始的3个字符cout << sOn << endl;sOn.clear();       //清空sOncout << sOn << endl;cout << peoPle << endl;cout << aniMal << endl;peoPle.swap(aniMal); //交换peoPle与aniMalcout << peoPle << endl;cout << aniMal << endl;return 0;
}

输出结果:

abcdefg
hijklmn
7
7
abcdefgjklm
de
XXXXXXXXXXXXXXXXXXXX
e
2
19
XXhijklmnXXXXXXXXXXXXX
-1
1
defg
XXhijklmnXabcdefgjklmXXXXXXXXXXXX
deSSSfg
dSfgabcdefgjklm
hijklmn
hijklmn
abcdefgjklm

作为一个进阶的程序员,这是我个人很辛苦的的总结,欢迎大家浏览。

String类型的用法(详细解说)相关推荐

  1. c# string类型基本用法

    1).Length:获得当前字符串中字符的个数 int ilength = namestr.Length; 2).ToUpper():将字符转换成大写形式 str= str.ToUpper();将字符 ...

  2. C++ string类型占几个字节

          在C语言中我们操作字符串肯定用到的是指针或者数组,这样相对来说对字符串的处理还是比较麻烦的,好在C++中提供了 string 类型的支持,让我们在处理字符串时方便了许多.这篇文章并不是讲解 ...

  3. string类具体用法

    string类具体用法 二话不说上代码 #include<string> #include<iostream> #include<algorithm> using ...

  4. string和stringstream用法总结

    string和stringstream用法总结 一.string string 是 C++ 提供的字串型態,和 C 的字串相比,除了有不限长度的优点外,还有其他许多方便的功能.要使用 string, ...

  5. stoi() 函数----将一个string类型转换为int型

    需要的头文件: #include<iostream> 需要的其他东西: using namespace std; 函数的作用: 将一个字符串string类型转换为int 型 用法格式: s ...

  6. string的常见用法详解

    目录 string的定义 string中内容的访问 string常用函数实例解析 在C语言中,一般使用字符数组char str[]来存放字符串,但是使用字符数组有时会显得操作麻烦,而且容易因经验不足而 ...

  7. Redis常用命令之操作String类型

    场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...

  8. php约束型,PHP类型约束用法示例

    本文实例讲述了PHP类型约束用法.分享给大家供大家参考,具体如下: 在强类型语言中,类型约束是语法上的要求,即定义一个变量的时候,必须指定类型,并以后也只能存储该类型数据: php是弱类型,其特点是无 ...

  9. java语言特点 字符串不变_面试必问:Java中String类型为什么设计成不可变的?

    这几天在各大平台上都看到过这样一些帖子,全都是关于String类型对象不可变的问题,当然现在也是找工作的准备时期,因此花了一部分时间对其进行整理一下. 想要完全了解String,在这里我们需要解决以下 ...

最新文章

  1. svn中的revert和update
  2. jQuery实例——仿京东仿淘宝列表导航菜单
  3. 怎样去掉 CSDN-Markdown 上传图片中的水印
  4. 知乎多场景内容匹配方案荣获CSDN AI优秀案例奖
  5. Android Service、 BroadcastReceiver、ContentProvider ANR 原理详解
  6. php 协程怎么用,PHP yield 协程 生成器用法的了解
  7. Spring Boot 参考指南(运行你的应用程序)
  8. 一个报文的路由器之旅_【NE探秘】一个报文的路由器之旅
  9. 【SpringBoot】开启热部署(jsp 页面热部署、devtools 全局热部署)
  10. java jms消息队列_JMS消息队列ActiveMQ(发布/订阅模式)
  11. 腾讯会议瞩目会议开启共享屏幕时候出现卡顿时候,是显卡问题。
  12. deepin20.6设置默认的root密码
  13. Kotlin-Android世界的一股清流-Package
  14. 奶茶新手加盟奶茶品牌培训哪些技能?
  15. JS判断当前页面是否在微信内打开
  16. 洛谷P2486 染色
  17. 2021年山阳中学高考成绩查询,陕西省山阳中学2018年高考成绩公布,2018年高考再创辉煌!...
  18. 华为p50鸿蒙系统手机价格,华为P50系列屏幕、镜头、芯片、价格全曝光,预装鸿蒙系统?...
  19. bash shock vulnerable
  20. 中国主要知名的旅游与酒店调查研究咨询公司

热门文章

  1. lte接口流程图_一种LTE系统内部X2接口切换流程和Uu接口信令流程的关联方法
  2. 红参的吃法 红参怎么做好吃
  3. 义乌购指数:保暖产品席卷欧洲市场,“羽绒服”挤进热搜前十,交易额同比增长45% | 美通社头条...
  4. 计算机无法自动待机,电脑自动待机,教您怎么设置让电脑不自动待机
  5. centos7中设置防火墙
  6. Python 让蔡徐坤在我的命令行里打篮球!| 技术头条
  7. FPU/VFP/ASE/NEON/MPE/SVE/MVE分别都是什么意思?
  8. 第七天;信息打点-资产泄漏CMS识别Git监控SVNDS_Store备份
  9. 云安全:云计算的安全风险、模型和策略
  10. WPF-单选MenuItem