STL之string用法详解
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用法详解相关推荐
- 转: std::string用法详解
原文地址为: 转: std::string用法详解 C++中的string 类 简单介绍 前言: string 的角色 1 string 使用 1.1 充分使用string 操作符 1.2 眼花缭乱 ...
- C++ STL容器 —— array 用法详解
C++ STL容器 -- array 用法详解 写在前面:近期正在学习C++的STL容器,因此在这里做一下日志记录,主要介绍一些容器基本成员函数的用法, 配上实际用例,并不涉及原理.但别人的博客终究是 ...
- C++ string 用法详解(转)
C++ string 详解 任何人对本文进行引用都要标明作者是Nicolai M.Josuttis /// C++ 语言是个十分优秀的语言,但优秀并不表示完美.还是有许多人不愿意使用C或者C++,为什 ...
- STL —— multimap的用法详解
文章目录 multimap的基本性质 STL--multimap容器的用法 multimap容器的创建与初始化 multimap容器包含的成员方法 multimap容器大小 multimap容器中键值 ...
- STL中map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...
- [转] STL中map用法详解
一.Map概述 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完 ...
- C++ String 用法详解
C++ 语言是个十分优秀的语言,但优秀并不表示完美.还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一就是C/C++的文本处理功能太麻烦,用起来很不方便.以前没有接触过其他语言时,每当别人 ...
- STL中list用法详解
本文转载自百度文库.作者如下.其中下面的count, count_if等函数的使用有些陈旧,如在编译时遇到问题,请百度. 标准模板库(STL)介绍 作者:Scott Field 本文以List容器为例 ...
- String用法详解
string类 声明 string类本不是STL的容器,但是它与STL容器有着很多相似的操作,因此,把string放在这里一起进行介绍. 之所以抛弃char*的字符串而选用C++标准程序库中的str ...
最新文章
- C++ 笔记(12)— 判断(if/if...else/switch、条件运算符)
- Tomcat8中的并发ConcurrentDateFormat的实现
- Gradient Boost 算法流程分析
- 牛客题霸 [ 求二叉树的层序遍历] C++题解/答案
- 【数据结构与算法】二叉树基本算法锦集
- 大数据 自学视频资料,纯分享
- [2013.9.15]关于string::nops为什么是-1
- linux下部署jdk+Tomcat
- [COCI2011-2012#7] KAMPANJA
- Java 创建线程的三种方法比较
- abp框架使用ip访问
- 京瓷1020手动双面打印提示_解决京瓷2201复印机不能双面打印问题
- 什么是实时渲染,吃CPU还是显卡?
- cryptojs php,CryptoJS简单使用方法
- 大数据GIS系列(2)——空间大数据处理与分析案例
- python爬虫系列一:爬取糗百成人的妹子图片(urllib2)
- 家庭小药箱(常见疾病医疗指南,知识科普)
- 基于Vue的WebApp项目开发(五)
- 各国商圈json数据及mysql文件
- python分割_Python文件合并与分割操作方法工具