C++ String常用函数

一,类型别名

size_type

无符号整型

iterator

迭代器类型

const_iterator

只读迭代器

reverse_iterator

逆序迭代器

const_reverse_iterator

只读逆序迭代器

different_type

足以存储两个迭代器差值的有符号整型

value_type

元素类型

reference

元素左值类型,是value_type&的同义词

const_reference

元素常量左值类型,是const value_type&的同义词

二,构造函数

string s1;

默认构造函数

string s2(s1);

初始化为s1的副本

string s3("value");

初始化为字符串字面值的副本

string s4(n,'c');

初始化为n个字符为'c'的副本

string s5(cp,n);

初始化为cp所指数组的前n个字符的副本

string s6(s1,pos);

初始化为s1从下标pos开始的字符的副本

string s7(s1,pos,len);

初始化为s1从下标pos开始长度为len个字符的副本

string s8(b,e);

初始化为迭代器b和e标记范围内的元素的副本

三,添加元素

s.push_back('t');

尾部添加值为t的字符

s.insert(p,'t');

迭代器p前面插入值为't'的字符,返回指向新字符的迭代器

s.insert(p,n,'t');

迭代器p前插入n个值为't'的字符,返回void

s.insert(p,b,e);

迭代器p前插入由迭代器b和e标记范围的元素

s.insert(pos,n,'t');

在下标pos前插入n个值为't'的字符

s.insert(pos,s2);

在下标pos前插入string对象s2

s.insert(pos,s2,pos2,len);

在下标pos前插入s2从pos2下标开始的len个字符

s.insert(pos,cp,len);

在下表pos前插入cp所指数组的前len个字符

s.insert(pos,cp);

在下表pos前插入cp所指的以空字符结束的字符串

四,删除元素

s.erase(p);

删除迭代器p所指向的元素。返回指向被删元素后一个元素的迭代器

s.erase(b,e);

删除由迭代器b和e标记范围内的元素,返回指向被删元素段后一个元素的迭代器

s.pop_back();

删除最后一个元素。返回void。VS2010支持。

s.clear();

删除所有元素,返回void

五,长度大小

s.size();

返回s中元素个数,类型为size_type

s.max_size();

返回s中可容纳最多元素个数,类型为size_type

s.empty();

返回s中元素是否为0的布尔值

s.resize(n);

调整s的长度大小,使其能容纳n个元素

如果n<s.size(),则删除多余元素,否则,添加采用值初始化的新元素

s.resize(n,'t');

调整s的长度大小,使其能容纳n个值为't'的元素

s.capacity();

返回在s需要分配更多存储空间前能存储的元素个数,返回类型为size_type

s.reserve(n);

设置s预留n个元素的存储空间,返回void

六,赋值操作

s1=s2;

删除s1的所有元素,将s2元素复制给s1

s1.swap(s2);

将s1和s2的内容交换

s.assign(b,e);

重设s的元素:将迭代器b和e标记范围的元素复制给s

s.assign(n,'t');

重设s为存储了n个值为't'的对象

s.assign(s2);

不解析

s.assign(s2,pos2,len);

不解析

s.assign(cp,len);

不解析

s.assign(cp);

不解析

七,子串操作

s.substr(pos,n);

返回string类型字符串,包含从下表pos开始的n个字符

s.substr(pos);

不解析

s.substr();

返回s的副本

s.c_str();

返回s的c风格字符串

八,string对象修改

操作函数:(args在参数表定义)

s.append(args);

将args串接在s后面。返回s的引用

s.replace(pos,len,args);

删除s中从下标开始的len个字符,用args替代之。返回s的引用。

此版本中,args不能为b2,e2

s.replace(b,e,args);

删除迭代器b和e标记范围内所有的字符,用args替代之。返回s的引用。

此版本中,args不能为s2,pos2,len2

args参数定义:

s2

string 类型的字符串s2

s2,pos2,len2

string类型的字符串s2中从下标pos2开始的len2个字符

cp

指针cp指向的以空字符结束的数组

cp,len2

cp指向的数组中的前len2个字符

n,'t'

字符't'的n个副本

b2,e2

迭代器b2和e2标记范围内的所有字符

九,string查找操作

操作函数:(args在参数表格定义,返回类型都是size_type或是string::nops)

注意:find和rfind是串精确查找,而find_first和find_last是单个字符查找。

s.find(args);

在s中查找args的第一次出现

s.rfind(args);

在s中查找args的最后一次出现

s.find_first_of(args);

在s中查找args的任意字符的第一次出现

s.find_last_of(args);

在s中查找args的任意字符的最后一次出现

s.find_first_not_of(args);

在s中查找第一个不属于args的字符

s.find_last_not_of(args);

在s中查找最后一个不属于args的字符

agrs参数:

't',pos

从下标pos开始,查找字符't',pos的默认值为0

s2,pos

从下标pos开始,查找string对象s2,pos默认值为0

cp,pos

查找cp所指C风格字符串,pos默认值为0

cp,pos,n

从下标pos开始,查找cp所指数组前n个字符

十,string对象比较(大于返回正数,小于返回负数,等于返回0)

s.compare(s2);

比较s和s2

s.compare(pos1,n1,s2);

让s中从pos下标开始的n1个字符跟s2做比较

s.compare(pos1,n1,s2,pos2,n2);

让s中从pos1下标开始的n1个字符与s2中从pos2开始的n2个字符比较

s.compare(cp);

cp,C风格字符串

s.compare(pos1,n1,cp);

不解析

s.compare(pos1,n1,cp,n2);

不解析

C++ string 常用函数的更多相关文章

  1. C#string常用函数总结

    补充:             1:在C语言里 char占1个字节 而在C#,Java里char占两个字节 数据库里char 中汉占两个字节 字母数字占一个字             2:string ...

  2. 【STL】string 常用函数

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

  3. 【转】string常用函数

    原文地址:http://hi.baidu.com/baowup/blog/item/3a27465c86d71546faf2c066.html/cmtid/de1ef3f0de7554a0a40f52 ...

  4. String 类的实现(5)String常用函数

      2 #include<iostream> 3 #include<stdio.h> 4 #include<assert.h> 5 #include <iom ...

  5. stl string常用函数

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

  6. C++中的string常用函数用法

    标准c++中string类函数介绍   注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而 ...

  7. c++标准库中的string常用函数总结《转》

    标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有 ...

  8. STL string 常用函数(转)

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

  9. c++中的string常用函数用法总结!

    标准c++中string类函数介绍 注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作 ...

随机推荐

  1. js(四) 全选/全不选和反选

    思路:通过选择全选的选框的状态stuts 即true/false控制其他选框. 首先 我们要通过.checked方法获取选框(全选/全不选)的值. function all(){ var stuts= ...

  2. Chrome 里的请求报错 " Provisional headers are shown"

    之所以会出现这个警告,是因为去获取该资源的请求其实并(还)没有真的发生; 背景:提交表单,按钮点击<button>标签,触发事件,ajax发送请求,服务器返回信息; <button& ...

  3. 学习vue就是那么简单,一个简单的案例

    vue是前端兴起的一个javascript库,相信大家都使用过jQuery,虽然vue和jQuery没有可比性,但从熟悉的角度去理解新的东西或许会容易接受一些,有时候由于思想和模式的转变会带来阵痛,但 ...

  4. Linux 字节序

    小心不要假设字节序. PC 存储多字节值是低字节为先(小端为先, 因此是小端), 一些高 级的平台以另一种方式(大端)工作. 任何可能的时候, 你的代码应当这样来编写, 它不在 乎它操作的数据的字节序 ...

  5. 【b503】篝火晚会

    Time Limit: 1 second Memory Limit: 50 MB [问题描述] 佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了"小教官" ...

  6. Vue+node.js实现一个简洁的个人博客系统

    本项目是一个用vue和node以及mysql实现的一个简单的个人博客系统,整体逻辑比较简单.但是可以我们完整的了解一个项目从数据库到后端到前端的实现过程,适合不太懂这一块的朋友们拿来练手. 本项目所用 ...

  7. PowerShell 通过 WMI 获取系统信息

    本文告诉大家如何通过 WMI 使用 Win32_OperatingSystem 获取设备厂商 通过下面代码可以获取 系统版本和系统是专业版还是教育版 Get-WmiObject Win32_Opera ...

  8. mapstatetoprops更新state但props不更新渲染的问题

    通过react-redux和redux实现react组件之间的通信,reducer.action.store都编写正确,mapDispatchToProps也能正确传值.唯独mapStateToPro ...

  9. hdu 2454 Degree Sequence of Graph G(可简单图化判定)

    传送门 •Havel-Hakimi定理: 给定一个非负整数序列{d1,d2,...dn},若存在一个无向图使得图中各点的度与此序列一一对应,则称此序列可图化. 进一步,若图为简单图,则称此序列可简单图 ...

  10. [转]SIMD、MMX、SSE、AVX、3D Now!、NEON

    转载来源<[整理]SIMD.MMX.SSE.AVX.3D Now!.neon> 本文摘取部分内容,详细请看原文. SIMD NEON是通用的SIMD(单指令多数据)引擎. 对于SISD,每 ...