2.1 string容器介绍

string也属于STL常用容器之一,因此vector(参考博客)中的大部分方法与迭代器都适用于string容器。string容器用于保存字符串,使用一组连续的内存单元来存放字符串中的每个字符,因此也支持随机访问与存储。c++中string完全可以替代字符数组和字符指针,下面主要介绍string容器独有的方法。

2.2 string容器的创建与使用

2.1.1 包含头文件

#include<string.h>  //c语言中的库文件,提供了各种字符串操作函数
#include<string>    //c++中提供了string

2.1.2 string的构造与访问

/***string的构造方法***/
char ch[30];
char ch1[30] = "laina";
char* ch_ptr = ch1;
string str = "laina";                        //默认构造方法
string str1(str);                           //初始化为str的副本
string str2("baga");                      //初始化为传入字符串的副本
string str3(2, 'b');                      //初始化为2个‘b’的副本
string str4(ch_ptr, 3);                     //初始化为所指数组的前n个字符
string str5(str1, 2);                       //初始化为str1从下标2开始的字符副本
string str6(str1, 2, 3);                    //初始化为str1从下标2开始的3个字符
string str7(str.begin() + 1, str.end());   //使用迭代器初始化

string str = "laina";
string str1 = "hello world!\n";
cout<<"print str1: ";
for(int i = 0;i<str1.length();i++){cout<<str1[i];
}

3.1.2 string字符串拼接

  • 使用“+=”进行拼接

  • 使用append进行追加:str.append(str2,0,3) //从第0个字符开始截取,截3个字符。

  //第一种拼接方法string str_temp = str + " " + str1;         cout << "str + \" \" + str1 : "<< str_temp << endl;//第二种拼接方法str_temp.append(str1);cout << "str.append(str1): " << str_temp << endl;str_temp.append(str, 3, 2);cout << "str.append(str, 3, 2): " << str_temp << endl;   //从序号为3个字符开始截取,截2个字符。

3.1.3 string字符串拼接

//字符串查找
int pos = str.find("na");      //没有该字符则返回s.npos(int)
cout << "position of na:\t\t" << pos << endl;
//字符串的替换
str1.replace(pos, 4, "naa");          //从表示从str1[pos]的下一个字符开始,将后面的4个字符替换为“naa”

3.1.4 string字符串比较

//逐位比较字符串的ascii码,完全相同返回0,假设第i位不同,若str[i]>str1[i]返回1,否则返回-1
cout<<"strcmp(str1.c_str(), str.c_str())= "<<strcmp(str1.c_str(), str.c_str())<<endl;

3.1.5 string字符串截取

str1 = str1.substr(2,5);        //从str1[2]开始截取5个字符

3.1.6 string迭代器的使用

#include<iostream>
#include <string>
using namespace std;
int main()
{string ss("zhoujielun");string s(ss.rbegin(), ss.rend());cout << endl;cout << "zhoujielun的逆序: " << s << endl;return 0;
}

3.1.7 string的一些其他方法

//strnlen(str,n) =>比较str的实际长度与n值,若length<n,则返回实际长度,否则返回n值
cout << "strnlen(str.c_str(), 3): " << strnlen(str.c_str(), 3) << endl;
//strchr(str,char s) =>返回第一次出现字符s的指针
cout << "strchr(str.c_str(), 'a'): " << strchr(str.c_str(),'a');

STL之string用法详解相关推荐

  1. 转: std::string用法详解

    原文地址为: 转: std::string用法详解  C++中的string 类 简单介绍 前言: string 的角色 1 string 使用 1.1 充分使用string 操作符 1.2 眼花缭乱 ...

  2. C++ STL容器 —— array 用法详解

    C++ STL容器 -- array 用法详解 写在前面:近期正在学习C++的STL容器,因此在这里做一下日志记录,主要介绍一些容器基本成员函数的用法, 配上实际用例,并不涉及原理.但别人的博客终究是 ...

  3. C++ string 用法详解(转)

    C++ string 详解 任何人对本文进行引用都要标明作者是Nicolai M.Josuttis /// C++ 语言是个十分优秀的语言,但优秀并不表示完美.还是有许多人不愿意使用C或者C++,为什 ...

  4. STL —— multimap的用法详解

    文章目录 multimap的基本性质 STL--multimap容器的用法 multimap容器的创建与初始化 multimap容器包含的成员方法 multimap容器大小 multimap容器中键值 ...

  5. STL中map用法详解

    Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...

  6. [转] STL中map用法详解

    一.Map概述          Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完 ...

  7. C++ String 用法详解

    C++ 语言是个十分优秀的语言,但优秀并不表示完美.还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一就是C/C++的文本处理功能太麻烦,用起来很不方便.以前没有接触过其他语言时,每当别人 ...

  8. STL中list用法详解

    本文转载自百度文库.作者如下.其中下面的count, count_if等函数的使用有些陈旧,如在编译时遇到问题,请百度. 标准模板库(STL)介绍 作者:Scott Field 本文以List容器为例 ...

  9. String用法详解

    string类 声明 string类本不是STL的容器,但是它与STL容器有着很多相似的操作,因此,把string放在这里一起进行介绍.  之所以抛弃char*的字符串而选用C++标准程序库中的str ...

最新文章

  1. C++ 笔记(12)— 判断(if/if...else/switch、条件运算符)
  2. Tomcat8中的并发ConcurrentDateFormat的实现
  3. Gradient Boost 算法流程分析
  4. 牛客题霸 [ 求二叉树的层序遍历] C++题解/答案
  5. 【数据结构与算法】二叉树基本算法锦集
  6. 大数据 自学视频资料,纯分享
  7. [2013.9.15]关于string::nops为什么是-1
  8. linux下部署jdk+Tomcat
  9. [COCI2011-2012#7] KAMPANJA
  10. Java 创建线程的三种方法比较
  11. abp框架使用ip访问
  12. 京瓷1020手动双面打印提示_解决京瓷2201复印机不能双面打印问题
  13. 什么是实时渲染,吃CPU还是显卡?
  14. cryptojs php,CryptoJS简单使用方法
  15. 大数据GIS系列(2)——空间大数据处理与分析案例
  16. python爬虫系列一:爬取糗百成人的妹子图片(urllib2)
  17. 家庭小药箱(常见疾病医疗指南,知识科普)
  18. 基于Vue的WebApp项目开发(五)
  19. 各国商圈json数据及mysql文件
  20. python分割_Python文件合并与分割操作方法工具

热门文章

  1. 自动驾驶-自适应卡尔曼滤波AKF
  2. Oracle——2.查询基本语法
  3. STM32F103模拟IIC总线驱动四个VL53L0
  4. 如何编写一个Java帮助文档
  5. Python生成英文大小写和数字的随机数
  6. Python之pandas库(万年一更版)
  7. matlab结果输出到文本的方法
  8. yama搜集的超超…全的下载音效的网站,持续更新
  9. 基于深度信念网络的硬件模拟器研究(Matlab代码实现)
  10. Mahalanobis距离 Vs. 欧氏距离