string类型用法大全
- 使用标准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类型用法大全的更多相关文章
- C++中 string 的用法大全
之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至 ...
- go中字符串类型string的用法
示例 // 字符串类型string的用法 package main import ( "fmt" "unsafe" ) func main() { // 字符串 ...
- MVC5 + EF6 + Bootstrap3 (9) HtmlHelper用法大全(下)
文章来源:Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc5-ef6-bs3-get-started-httphelper-part2.html 上一节 ...
- MVC中HtmlHelper用法大全参考
MVC中HtmlHelper用法大全参考 解析MVC中HtmlHelper控件7个大类中各个控件的主要使用方法(1) 2012-02-27 16:25 HtmlHelper类在命令System.Web ...
- Python3 pandas用法大全
Python3 pandas用法大全 一.生成数据表 1.首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: import numpy as np import pandas as ...
- 把《c++ primer》读薄(3-1 标准库string类型初探)
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 问题1:养成一个好习惯,在头文件中只定义确实需要的东西 using namespace std; //建议需要什么再using声 ...
- String.format()用法
package junit.test; import java.util.Date; import java.util.Locale; import org.junit.Test; pub ...
- 所学新知——int、char型转string 类型等
1. 利用stringstream类 定义头文件#include<sstream> 通过 int a; char b; sstream ss,ss1; ss<<a; ss1&l ...
- redis的string类型
string : string类型是二进制安全的, 可以包含任何数据,比如jpg图片或者序列化的对象 . 方法 : set : 设置key对应的值为string类型的value set name ...
随机推荐
- 从快感到成就感:多巴胺vs内啡肽
从快感到成就感:多巴胺vs内啡肽 来源 https://zhuanlan.zhihu.com/p/24697188 作者:朱良 编辑于 2017-06-20 努力不一定成功,但不努力一定 ...
- MT【287】余弦的线性组合
(2017北大特优)在$\Delta ABC$中,$cos A+\sqrt{2}cos B+\sqrt{2}cos C$的最大值____ 解答 :2$cos A+\sqrt{2}cos B+\sqrt ...
- iis express添加虚拟目录
在调试WEB时,还是使用IIS EXPRESS比较方便, 在IIS中,选择网站,右击,添加虚拟目录或者应用程序,就能添加虚拟目录了.. 在IIS EXPRESS中,添加虚拟目录如下 1.右击IIS E ...
- Linux下搜狗输入法和快捷键Ctrl+Space冲突的解决
配置快捷键(不是搜狗的设置) 把搜狗的启动快捷键给删了(如果有两个键盘[英+中],你按Shift就可以切换了,完全没必要占着茅坑) 其他快捷键冲突在键盘里面设置 over
- CSS解决字母不换行
通过百度,查找解决方案 1. word-break:break-all;只对英文起作用,以字母作为换行依据2. word-wrap:break-word; 只对英文起作用,以单词作为换行依据
- 洛谷P4206 聪聪与可可
无向简单图上给定s,t.每秒s先向t按照最短路走两步(优先节点编号较小的),然后t随机行动一步. 问期望多少秒相遇.n <= 1000 解: 这个s太蛇皮了...所以预处理一波. 然后不会,看题 ...
- 洛谷P4248 差异
题意:求所有后缀两两之间的最长公共前缀的长度之和. 解:这道题让我发现了一个奇妙的性质:所有后缀两两最长公共前缀长度之和 和 所有前缀两两最长公共后缀之和的值是相等的,但是每一组公共前/后缀是不同的. ...
- [luogu3810][bzoj3262][陌上花开]
题目链接 思路 听说可以CDQ分治,然后我不会,所以我写树套树 首先肯定先按照a拍个序.然后就成了在b,c这两个数组中查询了.用一个树状数组套treap来维护.当插入一个数的时候,就在树状数组的b这个 ...
- tfs 2013 利用 web deploy 完成asp.net站点自动发布
课题起因: 目前我们团队使用visual studio 2013开发asp.net项目, 使用tfs2013 做源码管理, 每天早上手动发布项目文件包,复制到测试服务器的站点文件夹下覆盖老文件,用此方 ...
- Django(十三)ajax 与 Bootstrap,font-awesome
prop,attr,val font-awesome:字体,图标库 对话框添加,删除,修改: 添加: Ajax偷偷向后台发请求: 1. 下载引入jQuery 2. $.ajax({ url: '/ad ...