• 使用标准C++中string类,要包含头文件< string >

string类的构造函数

//string(const char *s);        用字符串s初始化
string s1("hello");
//string(int n,char c); 用n个字符c初始化
string s2(10, '#');
//构造空字符串
string s3;
//赋值初始化
string s4="world";

string类的字符操作

//const char &operator[](int n)const;
cout<<s1[0]; //有可能数组越界
//const char &at(int n)const;
cout<<s1.at(1); //会进行越界检查

string的特性描述

//int capacity()const;          返回当前容量
//int max_size()const; 返回string对象中可存放的最大字符串的长度
//int size()const; 返回当前字符串的大小
cout<<s1.size();
//int length()const; 返回当前字符串的长度
cout<<s1.length();
//bool empty()const; 当前字符串是否为空
cout<<s1.empty();

string类的输入输出操作

//string类重载运算符operator>>用于输入
string s;
cin>>s;
//同样重载运算符operator<<用于输出操作。
cout<<s;
//函数getline(istream &in,string &s);用于从输入流in中读取字符串到s中,以换行符'\n'分开。
getline(cin, s);

string的赋值

//string &operator=(const string &s);   把字符串s赋给当前字符串
s1=s2;
//string &assign(const char *s); 用字符数组类型字符串s赋值
s1.assign("hello");
//string &assign(const char *s,int n); 用c字符串s开始的n个字符赋值
s1.assign("welcom", 3);
//string &assign(const string &s); 把字符串s赋给当前字符串
s1.assign(s2);
//string &assign(int n,char c); 用n个字符c赋值给当前字符串
s1.assign(10, '#');
//string &assign(const string &s,int start,int n);把字符串s中从start开始的n个字符赋给当前字符串
s1.assign(s2, 0, 2);

string的连接 ##

//string &operator+=(const string &s);     把字符串s连接到当前字符串的结尾
s1+=s2;
//string &append(const char *s); 把c类型字符串s连接到当前字符串结尾
//string &append(const char *s,int n); 把c类型字符串s的前n个字符连接到当前字符串结尾
s1.append("hello", 3);
//string &append(const string &s); 同operator+=()
s1.append(s2);
//string &append(const string &s,int pos,int n);把字符串s中从pos开始的n个字符连接到当前字符串的结尾
//string &append(int n,char c); 在当前字符串结尾添加n个字符c

string的比较

//比较两个字符串是否相等
bool operator==(const string &s1,const string &s2)const; 运算符">","<",">=","<=","!="均被重载用于字符串的比较;
int compare(const string &s) const; //比较当前字符串和s的大小 //比较当前字符串从pos开始的n个字符组成的字符串与s的大小
int compare(int pos, int n,const string &s)const; //比较当前字符串从pos开始的n个字符组成的字符串与s中pos2开始的n2个字符组成的字符串的大小
int compare(int pos, int n,const string &s,int pos2,int n2)const;
int compare(const char *s) const;
int compare(int pos, int n,const char *s) const;
int compare(int pos, int n,const char *s, int pos2) const;
compare函数在>时返回1,<时返回-1,==时返回0

string的子串

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

string的交换

void swap(string &s2);    //交换当前字符串与s2的值

String类的查找函数

int find(char c, int pos = 0) const;
//从pos开始查找字符c在当前字符串的位置 int find(const char *s, int pos = 0) const;
//从pos开始查找字符串s在当前串中的位置 int find(const char *s, int pos, int n) const;
//从pos开始查找字符串s中前n个字符在当前串中的位置 int find(const string &s, int pos = 0) const;
//从pos开始查找字符串s在当前串中的位置
//查找成功时返回所在位置,失败返回string::npos的值 int rfind(char c, int pos = npos) const;
//从pos开始从后向前查找字符c在当前串中的位置 int rfind(const char *s, int pos = npos) const;
int rfind(const char *s, int pos, int n = npos) const; int rfind(const string &s,int pos = npos) const;
//从pos开始从后向前查找字符串s中前n个字符组成的字符串在当前串中的位置,成功返回所在位置,失败时返回string::npos的值 int find_first_of(char c, int pos = 0) const;
//从pos开始查找字符c第一次出现的位置 int find_first_of(const char *s, int pos = 0) const;
int find_first_of(const char *s, int pos, int n) const; int find_first_of(const string &s,int pos = 0) const;
//从pos开始查找当前串中第一个在s的前n个字符组成的数组里的字符的位置。查找失败返回string::npos int find_first_not_of(char c, int pos = 0) const; int find_first_not_of(const char *s, int pos = 0) const; int find_first_not_of(const char *s, int pos,int n) const; int find_first_not_of(const string &s,int pos = 0) const;
//从当前串中查找第一个不在串s中的字符出现的位置,失败返回string::npos int find_last_of(char c, int pos = npos) const;
int find_last_of(const char *s, int pos = npos) const;
int find_last_of(const char *s, int pos, int n = npos) const;
int find_last_of(const string &s,int pos = npos) const;
int find_last_not_of(char c, int pos = npos) const;
int find_last_not_of(const char *s, int pos = npos) const;
int find_last_not_of(const char *s, int pos, int n) const; int find_last_not_of(const string &s,int pos = npos) const;
//find_last_of和find_last_not_of与find_first_of和find_first_not_of相似,只不过是从后向前查找

string类的替换函数

string &replace(int p0, int n0,const char *s);
//删除从p0开始的n0个字符,然后在p0处插入串s string &replace(int p0, int n0,const char *s, int n);
//删除p0开始的n0个字符,然后在p0处插入字符串s的前n个字符 string &replace(int p0, int n0,const string &s);
//删除从p0开始的n0个字符,然后在p0处插入串s string &replace(int p0, int n0,const string &s, int pos, int n);
//删除p0开始的n0个字符,然后在p0处插入串s中从pos开始的n个字符 string &replace(int p0, int n0,int n, char c);
//删除p0开始的n0个字符,然后在p0处插入n个字符c

string类的插入函数

string &insert(int p0, const char *s);
string &insert(int p0, const char *s, int n);
string &insert(int p0,const string &s);
string &insert(int p0,const string &s, int pos, int n);
//前4个函数在p0位置插入字符串s中pos开始的前n个字符
string &insert(int p0, int n, char c);
//此函数在p0处插入n个字符c

string类的删除函数

string &erase(int pos = 0, int n = npos);
//删除pos开始的n个字符,返回修改后的字符串

字符串流处理

通过定义ostringstream和istringstream对象实现,需要#include <sstream>头文件
例如: string input("hello,this is a test");
istringstream is(input);
string s1,s2,s3,s4;
is>>s1>>s2>>s3>>s4;//s1="hello,this",s2="is",s3="a",s4="test"
ostringstream os;
os<<s1<<s2<<s3<<s4;
cout<<os.str();

string类型用法大全的更多相关文章

  1. C++中 string 的用法大全

    之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至 ...

  2. go中字符串类型string的用法

    示例 // 字符串类型string的用法 package main import ( "fmt" "unsafe" ) func main() { // 字符串 ...

  3. MVC5 + EF6 + Bootstrap3 (9) HtmlHelper用法大全(下)

    文章来源:Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc5-ef6-bs3-get-started-httphelper-part2.html 上一节 ...

  4. MVC中HtmlHelper用法大全参考

    MVC中HtmlHelper用法大全参考 解析MVC中HtmlHelper控件7个大类中各个控件的主要使用方法(1) 2012-02-27 16:25 HtmlHelper类在命令System.Web ...

  5. Python3 pandas用法大全

    Python3 pandas用法大全 一.生成数据表 1.首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: import numpy as np import pandas as ...

  6. 把《c++ primer》读薄(3-1 标准库string类型初探)

    督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 问题1:养成一个好习惯,在头文件中只定义确实需要的东西 using namespace std; //建议需要什么再using声 ...

  7. String.format()用法

    package junit.test;   import java.util.Date; import java.util.Locale;   import org.junit.Test;   pub ...

  8. 所学新知——int、char型转string 类型等

    1. 利用stringstream类 定义头文件#include<sstream> 通过 int a; char b; sstream ss,ss1; ss<<a; ss1&l ...

  9. redis的string类型

    string : string类型是二进制安全的, 可以包含任何数据,比如jpg图片或者序列化的对象 . 方法 : set : 设置key对应的值为string类型的value set  name   ...

随机推荐

  1. eclipse中git推送上传错误 没有足够的数据写入

    Can't connect to any repository: https://github.com/jiashubing/test.git (https://github.com/jiashubi ...

  2. MT【265】a+b,ab

    已知$a+b=1$,求$(a^3+1)(b^3+1)$的最大值_____ $(a^3+1)(b^3+1)=a^3+b^3+a^3+b^3+1$ $=(a+b)^3(a^2+b^2-ab)+a^3b^3 ...

  3. python学习日记(函数进阶)

    命名空间 内置命名空间 存放了python解释器为我们提供的名字:print,input...等等,他们都是我们熟悉的,拿过来就可以用的方法. 内置的名字在启动解释器(程序运行前)的时候被加载在内存里 ...

  4. Android 9.png图片的制作方法

    在Android的设计过程中,为了适配不同的手机分辨率,图片大多需要拉伸或者压缩,这样就出现了可以任意调整大小的一种图片格式".9.png".这种图片是用于Android开发的一种 ...

  5. [luogu1337][bzoj3680][JSOI2004]平衡点 / 吊打XXX【模拟退火】

    题目描述 gty又虐了一场比赛,被虐的蒟蒻们决定吊打gty.gty见大势不好机智的分出了n个分身,但还是被人多势众的蒟蒻抓住了.蒟蒻们将n个gty吊在n根绳子上,每根绳子穿过天台的一个洞.这n根绳子有 ...

  6. 【转】MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainC

    @2018-12-18 [小记] vs-2013 编译 cJSON code in git-hub 时遇见问题 error LNK2019,解决如下 [问题描述]MSVCRTD.lib(crtexew ...

  7. 使用Coverage进行代码覆盖率的测试

    软件测试实验报告 一.实验目的: 使用软件测试代码覆盖率. 二.实验工具: Windows10.Python3.6.3.Coverage. 三.实验内容: 1.编写准备测试的代码main.py和测试代 ...

  8. LVM-COW写实备份

    [root@localhost ~]# fdisk -l /dev/sdb /dev/sdc | grep "LVM"/dev/sdb1 1 9660 77593918+ 8e L ...

  9. CF932E Team Work(第二类斯特林数)

    传送门:CF原网 洛谷 题意:给定 $n,k$,求 $\sum\limits^n_{i=1}\dbinom{n}{i}i^k\bmod(10^9+7)$. $1\le n\le 10^9,1\le k ...

  10. 牛客练习赛43 Tachibana Kanade Loves Probability(快速幂)

    链接:https://ac.nowcoder.com/acm/contest/548/B来源:牛客网 题目描述 立华奏在学习初中数学的时候遇到了这样一道大水题: “设箱子内有 n 个球,其中给 m 个 ...