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

【C++】14___String容器

目录

一、string基本概念

二、string赋值操作

三、字符串拼接

四、 string查找和替换

五、 string字符串比较

六、string插入和删除

七、string子串


一、string基本概念

本质:string是C++风格的字符串,而string本质上是一个类

string和char*区别:

  • char*是一个指针
  • string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。

特点:string内部封装了很多成员方法

string构造函数

  • string();
  • string(const  char*s);
  • string(const string &str);
  • string(int n,char c); 

 代码示例

#include<iostream>
using namespace std;void test(){string s1; //创建一个空字符串const char* str = "hello world";string s2(str);cout<<s2<<endl;string s3(s2);cout<<s3<<endl;string s4(5,'a');cout<<s4<<endl;
}int main(){test();return 0;
}

二、string赋值操作

赋值的函数原型:

  • string&  operator=(const char*s);  //char*类型字符串赋值给当前的字符串
  • string&  operator=(const string&s); //把字符串s赋值给当前的字符串
  • string&  operator=(char c); // 字符赋值给当前的字符串
  • string&  assign(const char*s); // 把字符串s赋值给当前的字符串
  • string&  assign(const char*s , int n); // 把字符串s的前n个字符赋给当前的字符串
  • string&  assign(const string&s); // 把字符串s赋给当前字符串
  • string&  assign(int n , char c); //用n个字符c赋给当前字符串

三、字符串拼接

函数原型:

  • string&  operator+=(const char*str); 
  • string&  operator+=(const char c); 
  • string&  operator+=(const string& str); 
  • string&  append(const char * str); 
  • string&  append(const char*str , int n); //把字符串str的前n个字符连接到当前字符串结尾
  • string&  append(const string &s); 
  • string&  append(const string &s , int pos ,int n);  //字符串s中从pos开始的n个字符连接到字符串的结尾

四、 string查找和替换

函数原型:

  • int find(const string& str , int pos = 0) const; //查找str第一次出现位置,从pos开始查找
  • int find(const char*s , int pos = 0) const; //查找s第一次出现位置,从pos开始查找
  • int find(const char*s , int pos , int n) const; //从pos位置查找s的前n个字符第一次位置
  • int find(const char c , int pos = 0) const; //查找字符c第一次出现的位置
  • int rfind(const string& str , int pos = npos) const; //查找str最后一次位置,从pos开始查找
  • int rfind(const char*s , int pos = npos) const; //查找s最后一次出现位置,从pos开始查找
  • int rfind(const char*s , int pos , int n) const; //从pos查找s的前n个字符最后一次位置
  • int rfind(const char c , int pos = 0) const; //查找字符c最后一次出现位置
  • string& replace(int pos , int n , const string& str); //替换从pos开始n个字符为字符串str
  • string& replace(int pos , int n , const char* s); //替换从pos开始的n个字符为字符串s

五、 string字符串比较

字符串比较是按字符的ASCII码进行对比

  • =  返回 0
  • >  返回 1
  • <  返回 -1 

 六、string插入和删除

函数原型:

  • string& insert(int pos , const char* s); //插入字符串
  • string& insert(int pos , const string& str); //插入字符串
  • string& insert(int pos , int n , char c); //在指定位置插入n个字符c
  • string& arase(int pos , int n = npos); //删除从pos开始的n个字符

七、string子串

功能:从字符串中获取想要的子串

函数原型:

string substr(int pos = 0, int n = npos)const; //返回由pos开始的n个字符组成的字符串

代码示例

#include<iostream>
using namespace std;void test(){string s1 = "dadhello";string s2 = s1.substr(3,5);cout<<"s2="<<s2<<endl;
}void test1(){// 实用操作,获取用户信息string email = "zhangsan@qq.com";int pos = email.find('@');string s3 = email.substr(0,pos);cout<<s3<<endl;
}int main(){test();test1();return 0;
}
http://www.lryc.cn/news/506323.html

相关文章:

  • 数据特性库 前言
  • jdk和cglib动态代理区别
  • 部署Mysql、镜像和容器、常见命令
  • 【数学】P2671 [NOIP2015 普及组] 求和
  • 【AI图像生成网站Golang】项目测试与优化
  • vue常用自定义指令
  • 以太网帧、IP数据报图解
  • 01.大模型起源与发展
  • leetcode刷题日记03——javascript
  • vue横向滚动日期选择器组件
  • 【大模型】大模型项目选择 RAGvs微调?
  • 2024年12月CCF-GESP编程能力等级认证Python编程一级真题解析
  • 【机器学习】元学习(Meta-learning)
  • 详解Redis的String类型及相关命令
  • android RadioButton + ViewPager+fragment
  • 给机器装上“脑子”—— 一文带你玩转机器学习
  • 论文笔记:是什么让多模态学习变得困难?
  • ChatGPT Search开放:实时多模态搜索新体验
  • Centos7.9 离线安装docker
  • C语言函数在调用过程中具体是怎么和栈互动的?
  • 【Java中常见的异常及其处理方式】
  • 如何更新项目中的 npm 或 Yarn 依赖包至最新版本
  • SpringBoot3整合FastJSON2如何配置configureMessageConverters
  • 《Vue3实战教程》2:Vue3快速上手
  • ubuntu 24.04.1安装FTP流程
  • 多功能护照阅读器港澳通行证阅读机RS232串口主动输出协议,支持和单片机/Linux对接使用
  • 5个用于构建Web应用程序的Go Web框架
  • Qt中的异步相关类
  • 浅谈仓颉语言的优劣
  • Linux 显示系统活动进程状态命令 ps 详细介绍