C++示例讲解string容器

目录
  • string基本概念
  • string初始化
  • string赋值操作
  • string字符串拼接

string基本概念

本质:

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

string和char*区别

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

特点:

string类内部封装了很多成员方法

例如: 查找find,拷贝copy,删除delete、替换replace、插入 insert

string管理char*所分配的内存,不用担心复制越界和取值越界等,由内部类进行负责

string初始化

#include<string>
/*
-string(); //创建一个空的字符 例如: string str
 string(const char *s); //使用字符串s初始化
- string(const string &str); //使用一个string对象初始化另一个string对象
- string(int n, char c); //使用n个字符c初始化
*/
void test01()
{
	string s1; //默认构造
	const char* str = "hello world";
	string s2(str);
	cout << s2 << endl;
	//方法3,拷贝构造
	string s3(s2);
	cout << "s3 = " << s3 << endl;
	//方法4
	string s4(10,'a');
}

string赋值操作

/*
1、string operator=(const char* s); //char*类型字符串,赋值给当前的字符串
2、string operator=(const string &s); //把字符串s赋值给当前的字符串
3、string operator=(const char); //字符赋值给当前的字符串
4、string& assign(const char *s); //把字符串s赋值给当前的字符串
5、string& assign(const char* s, int n); //把字符串的前n个字符赋值给当前字符串
6、string& assign(const string &s); //把字符串s赋值给当前字符串
7、string& assign(int n, char c); //用n个字符串c赋值给当前字符串
*/
void test01()
{
	//方法1
	string str1;
	str1 = "hello world";
	cout << "str1 =" << str1 << endl;
	//方法2
	string str2;
	str2 = str1;
	cout << "str2 =" << str2 << endl;
	//方法3
	string str3;
	str3 = 'a';
	cout << "str3 =" << str3 << endl;
	//方法4
	string str4;
	str4.assign("hello c++");
	cout << "str4 =" << str4 << endl;
	//方法5
	string str5;
	str5.assign(str4, 5);
	cout << "str5 =" << str5 << endl;
	//方法6
	string str6;
	str6.assign(str5);
	cout << "str6 =" << str6 << endl;
	//方法7
	string str7;
	str7.assign(10,'w');
	cout << "str7 =" << str7 << endl;
}

string字符串拼接

/*
1、string& operator+=(const char* str); //重载+=操作符
2、string& operator+=(const char c); //重载+=操作符
3、string& operator+=(const string& str); //重载+=操作符
4、string&  append(const char* s); //把字符串s连接到当前字符串结尾
5、string&  append(const char *s, int n); //把字符串s的前n个字符连接到当前字符串结尾
6、string&  append(const string &s); //同operator+=(const string &str)
7、string&  append(const string& s, int pos, int n); //字符串s中从pos开始的n个字符串连接到字符串结尾
*/
void test02()
{
	//方法1
	string str2_1 = "my ";
	str2_1 += "love play game";
	cout << "str2_1 =" << str2_1 << endl;
	//方法2
	str2_1 += 't';
	cout << "str2_1 =" << str2_1 << endl;
	//方法3
	string str2_2;
	str2_2.assign("I LOVE LEARN and ");
	str2_2 += str2_1;
	cout << "str2_2 =" << str2_2 << endl;
	//方法4
	string str2_3;
	str2_3 = "I";
	str2_3.append(" Love");
	cout << "str2_3 =" << str2_3 << endl;
	//方法5
	string str2_4 = "aaa";
	str2_4.append("bcd", 2);
	cout << "str2_4 =" << str2_4 << endl;
	//方法6
	string str2_5 = "bbb";
	str2_5.append(str2_4,0,2);
	cout << "str2_1 =" << str2_5 << endl;
}

到此这篇关于C++示例讲解string容器 的文章就介绍到这了,更多相关C++ string容器 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C++string容器基本概念详解

    string基本概念 本质: string是C++风格的字符串,而string本质上是一个类 string和char*区别: char*是一个指针 string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器. 特点: string类内部封装了很多成员方法 例如:查找find,拷贝copy,删除delete,替换replace,插入insert string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责. string构造函数 #includ

  • 一起来看看C++STL容器之string类

    目录 前言 1.标准库中的string类 2.string类的常用接口说明 2.1string对象的常见构造 2.2string类对象的容量操作 2.2.1reserve是如何开辟空间的 2.2.2clear和empty 2.2.3resize的用法 2.3string类对象的访问以及遍历操作 范围for的使用 2.4string类对象的修改操作 2.4.1push_back和append以及operator+= 2.4.2 find和rfind以及substr 2.5string非成员函数重载

  • C++示例讲解string容器

    目录 string基本概念 string初始化 string赋值操作 string字符串拼接 string基本概念 本质: string是c++风格的字符串,而string本质上是一个类 string和char*区别 char*是一个指针string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器 特点: string类内部封装了很多成员方法 例如: 查找find,拷贝copy,删除delete.替换replace.插入 insert string管理char*所分配的

  • C++示例讲解vector容器

    目录 vector基本概念 创建 vector 的各种方法 vector容器的构造 vector赋值操作 vector容量和大小 vector容器插入和删除 vector数据存取 vector互换容器 vector基本概念 功能: vector数据结构和数组非常相似,也称为单端数组 vector与普通数组区别: 不同之处在于数组是静态空间,而vector可以动态扩展 动态扩展: 并不是在原空间之后继续接新空间,而是找更大的内存空间,然后将元数据拷贝新空间,释放原空间 创建 vector 的各种方

  • java实现网页爬虫的示例讲解

    这一篇目的就是在于网页爬虫的实现,对数据的获取,以便分析. 目录: 1.爬虫原理 2.本地文件数据提取及分析 3.单网页数据的读取 4.运用正则表达式完成超连接的连接匹配和提取 5.广度优先遍历,多网页的数据爬取 6.多线程的网页爬取 7.总结 爬虫实现原理 网络爬虫基本技术处理 网络爬虫是数据采集的一种方法,实际项目开发中,通过爬虫做数据采集一般只有以下几种情况: 1) 搜索引擎 2) 竞品调研 3) 舆情监控 4) 市场分析 网络爬虫的整体执行流程: 1) 确定一个(多个)种子网页 2) 进

  • C++集体数据交换实现示例讲解

    目录 一.说明 二.示例和代码 一.说明 到目前为止介绍的功能共享一对一的关系:即一个进程发送和一个进程接收.链接是通过标签建立的.本节介绍在多个进程中调用相同参数但执行不同操作的函数.对于一个进程,函数可能会发送数据,对于另一个进程,它可能会接收数据.这些功能称为集体操作. 二.示例和代码 示例 47.9.使用 gather() 从多个进程接收数据 #include <boost/mpi.hpp> #include <boost/serialization/string.hpp>

  • IKAnalyzer结合Lucene实现中文分词(示例讲解)

    1.基本介绍 随着分词在信息检索领域应用的越来越广泛,分词这门技术对大家并不陌生.对于英文分词处理相对简单,经过拆分单词.排斥停止词.提取词干的过程基本就能实现英文分词,单对于中文分词而言,由于语义的复杂导致分词并没英文分词那么简单,一般都是通过相关的分词工具来实现,目前比较常用的有庖丁分词以及IKAnalyzer等.这里我们主要通过一个简单的Demo聊聊IKAnalyzer的基本使用.IKAnalyzer是一个开源的,基于java开发的分词工具包,它独立于Lucene项目,同时提供了Lucen

  • WPF MVVM示例讲解

    在没给大家讲解wpf mwm示例之前先给大家简单说下MVVM理论知识: WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时,WPF会自动发出通知去更新UI. 我们使用模式,一般是想达到高内聚低耦合.在WPF开发中,经典的编程模式是MVVM,是为WPF量身定做的模式,该模式充分利用了WPF的数据绑定机制,最大限度地降低了Xmal文件和CS文件的耦合度,也就是UI显示和逻辑代码的耦合度,如需要更换界面时,逻辑代码修改很少,

  • hadoop中实现java网络爬虫(示例讲解)

    这一篇网络爬虫的实现就要联系上大数据了.在前两篇java实现网络爬虫和heritrix实现网络爬虫的基础上,这一次是要完整的做一次数据的收集.数据上传.数据分析.数据结果读取.数据可视化. 需要用到 Cygwin:一个在windows平台上运行的类UNIX模拟环境,直接网上搜索下载,并且安装: Hadoop:配置Hadoop环境,实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS,用来将收集的数据直接上传保存到HDFS,然后用MapReduce

  • 基于Redis的限流器的实现(示例讲解)

    1 概述 系统中的接口通常都有限流,比如 70次/秒 ,如何保证我们的接口的调用次数在超过第三方接口限流的时候快速失败呢?这时候就需要限流器了.下面是笔者用redis实现限流器的流程图. 2 代码 /** * 获取限流权限 * @param key * @param millisecond 毫秒数 * @param limitCount 限流次数 * @return */ public static boolean getCurrentLimiting(String key, Long mill

  • NPOI实现两级分组合并功能(示例讲解)

    NPOI版本:2.2.1.0 最近公司有这样的需求: 统计每个部门下面,多个费用使用情况.部门存在多级,但统计时,只需统计到2级,2级以下的,归到第2级的部门下.并且要求,第2级部门有个小计,第1级部门需要有个合计.最后,还需提供总计. 本来对NPOI研究的还不够深入的,以前都是直接通过别人提供的代码来实现对DataTable中的数据进行全部导出,但里面不带合并,及合计功能,不满足当前需求.不得已,只有好好地研究一下了.还好,最终实现了要求. 在此,也感谢其他提供相关资料的人员,让我实现了此功能

  • android监听View加载完成的示例讲解

    最近项目中需要实现一个GridView显示6*5=30项,并铺满整个界面,界面中还有自定义ActionBar等其他控件,所以需要获取剩下屏幕的高度.通过百度得知View有一个监听函数,亲测使用有效,特此记录,方便日后查阅. gv_test.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayo

随机推荐