(本人只是小新,写博客就是想记录学习,同时让一些大佬看到我的学习记录可以指出我的错误)

目录

(1)对于string的个人理解

(2)字符串的输入

(3)字符串的基本操作

(4)字符串的输出


对于C++中的string用法

1:对于string的个人理解:

string个人理解是字符串类型,既然是字符串的类型,那么这篇文章我就分为第一步如何输入字符串,第二步如何对字符串进行操作,第三步如何输出字符串。

2:字符串的输入:

(1)cin输入字符串:cin后面可以直接加字符串的名字,不过这种输入如果遇到空格,Tab键,回车的话就直接结束。如下面的代码所示:

#include<bits/stdc++.h>
using namespace std;
int main()
{string s;//输入字符串abc def//abc和def之间有个空格cin>>s;cout<<s;return 0;
}

这里的cout可以直接输出字符串的,后面(4)字符串的输出会讲到的。这里abc和def之间是有空格的,cin再读入时遇到边终止了,所以输出是abc

(2)gerline读入字符串:getline的读入解决了cin遇到空格等终止的缺点,格式是:getline(cin,s),括号里的cin是固定的,s是一个字符串的名字,代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{string s;getline(cin,s);cout<<s;return 0;
}

 中间有许多空格,输出的时候同时也将这些空格也输出了。(当然还有其他的可以接收空格字符等的,但我喜欢用的是getline)

3:字符串的基本操作:

(1)string字符串的比较:可以直接使用  compare函数  等来比较,比较的规则是,输出第一个不同字符的比较结果,大于返回1,小于返回-1,相等返回0。compare同时也可以接受其它的参数(具体大家可以参考其他资料哈),代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);getline(cin,b);cout<<a.compare(b);return 0;
}

 (2)insert函数:插入

这里的插入可以是字符或者是字符串

1:插入的是字符:格式是a.insert(pos,n,'s')这里的a是字符串的名字,pos是插入的位置,n是字符个数,s代表的就是插入的字符,注意这里的n不可以省略,即使插入的字符只有一个。

2:插入的是字符串:格式是a.insert(pos," s")这里的a是字符串的名字,pos是插入的位置,s是要插入的字符串。代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);cout<<"插入前:"<<a<<endl;a.insert(2,"shd");cout<<"插入后:"<<a<<endl;getline(cin,b);cout<<"插入前:"<<b<<endl;b.insert(3,1,'s');cout<<"插入后:"<<b<<endl;return 0;
}

(3)erase函数:删除

删除的格式:a.erase(2,4)这里的a是字符串的名字,2代表的是删除的起始位置,4代表的是从起始位置开始要删除的字符个数。代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);a.erase(2,5);cout<<a;return 0;
}

(4)subsrt函数:剪切,我们也可以理解成字符串的子串,格式:a.substr(pos,n)这里的a是字符串的名字,pos是起始位置,n是从起始位置开始算的字符个数。代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);b=a.substr(4,5);cout<<"b="<<b;return 0;
}

(5)append函数:添加

其实与insert插入函数的作用差不多,append函数我们一般用来在末尾添加,不需要还要知道原来字符串的长度,append函数如果末尾添加的是字符的话,不管数量多少,都要写一个数字参数代表个数,具体如代码所示:

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);b="abcd";a.append(b);cout<<a<<endl;a.append(1,'2');cout<<a;return 0;
}

(6)replace函数:替换

顾名思义就是将字符串中的子串替换成其它的字符或者字符串。首先替换字符串,格式是a.replace(pos,n,"12345")这里的a是字符串名字,pos是起始位置,n是从起始位置算起的字符数,后面的双引号里的就是用它来替换从pos开始的n个字符。如果替换字符的话,格式:a.replace(pos,n,ans,' ' )这里的pos和n跟上面一样,ans是字符个数,'  ' 里面的是字符,具体见代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);b="12345";a.replace(1,3,"12345");cout<<a<<endl;string sa,sb;getline(cin,sa);sa.replace(2,1,2,'0');cout<<sa<<endl;return 0;
}

(7)find函数:查找

查找字符或者字符串第一次出现的位置,格式具体见代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);b="123";cout<<a.find('a')<<endl;cout<<a.find(b);return 0;
}

(8)revese函数:反转

具体见代码格式:

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);reverse(a.begin(),a.end());cout<<a;return 0;
}

4:字符串的输出

个人比较喜欢用cout输出,虽然效率不高,但方便。代码如下

#include<bits/stdc++.h>
using namespace std;
int main()
{string a,b;getline(cin,a);cout<<a;return 0;
}

C++中的string用法相关推荐

  1. C++/C++11中std::string用法汇总

    C++/C++11中std::string是个模板类,它是一个标准库.使用string类型必须首先包含<string>头文件.作为标准库的一部分,string定义在命名空间std中. st ...

  2. java中的string用法详解

    构造器 Java中,一切皆对象,String也是.如果是对象的话,那第一个想到的函数自然而然就是构造器啦!语法如下: String str = new String("I am a stri ...

  3. C++string类常用函数 c++中的string常用函数用法总结

    string类的构造函数: string(const char *s);    //用c字符串s初始化 string(int n,char c);     //用n个字符c初始化 此外,string类 ...

  4. C++中std::string::find_last_of用法

    早上本来还看代码时本来还迷迷糊糊,结果被find_last_of一下给震醒了,std::string 使用了这么多年,今天才发现find_last_of只是用来查找字符的,多年来一直以为它可用来查找字 ...

  5. C++中的string类用法简介

    本文主要介绍C++中的string类的常见用法. 1. 概述 string是C++标准库的一个重要的部分,主要用于字符串处理.可以使用输入输出流方式直接进行string操作,也可以通过文件等手段进行s ...

  6. c++中string和c语言string用法总结

    实例引出: 这个一个字符变换的题目:需要把输入的含有Q加数字的变为对应的Text+个数的形式: 输入样例为: abddaQ123werQ1234 输出为:abddaText1werText2 我在编写 ...

  7. c 语言string类用法,C++中的string类用法简介

    本文主要介绍C++中的string类的常见用法. 1. 概述 string是C++标准库的一个重要的部分,主要用于字符串处理.可以使用输入输出流方式直接进行string操作,也可以通过文件等手段进行s ...

  8. mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法

    Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...

  9. 【C++】C/C++ 中 static 的用法全局变量与局部变量

    C/C++ 中 static 的用法全局变量与局部变量 目录 1. 什么是static? 1.1 static 的引入 1.2 静态数据的存储 2. 在 C/C++ 中static的作用 2.1 总的 ...

最新文章

  1. nuxt 如何引入js_nuxtjs如何在单独的js文件中引入store和router
  2. 对象的序列化和反序列化
  3. windows 7架设OpenSSH服务器实践
  4. Docker入门 一 安装Docker
  5. 程序代码初学者_初学者:如何使用热键在Windows中启动任何程序
  6. ffmpeg的内部Video Buffer管理和传送机制
  7. Java基础篇4——数组
  8. Amazon S3 各服務據點速度比較
  9. java安装找不到uri,【找不到与请求 URI匹配的 HTTP 资源】(转)
  10. 推荐系统在滴滴司机调度系统中的应用实践
  11. 一元线性回归原理及python简单实现
  12. 中国人工智能学会通讯——一种基于众包的交互式数据修复方法 3 给定质量约束下的交互式算法...
  13. Ubuntu安装Robo3T(Studio3T Free)
  14. 智能门锁与网关:海康萤石智能门锁的网关分析(二)
  15. vscode的插件prettier配置
  16. 从零构建通讯器--4.3日志打印实战,捋下main函数的调用顺序
  17. Go 学习笔记(83)— 编码规范及常用开发技巧
  18. K8S故障排查指南:部分节点无法启动Pod资源-Pod处于ContainerCreating状态
  19. Linux磁盘分区初始化
  20. [限免]可爱怪兽来了~ 培养孩子辨识数字的「Cutie Mini Monsters」! ...

热门文章

  1. 关于协方差,协方差矩阵的个人理解
  2. sql中的dbl的含义
  3. 书籍 -- 《高性能MySQL》持续更新中(四)
  4. Mysql数据库定时任务
  5. linux pip安装(下载)
  6. Web开发之常用框架BootStrap
  7. 2022-2028全球与中国成像色度计市场现状及未来发展趋势
  8. 性能优化---vue路由懒加载和异步组件
  9. 看完,你就理解什么是数据的全量、增量、差异备份了
  10. 解析grib格式数据库eccodes的安装