C++中string类详解
来源:互联网 发布:风云漫画知乎 编辑:程序博客网 时间:2024/09/21 09:25
(1)string类型的构造函数:
string s
定义一个空的string类型(默认构造函数)
string s(cp)
用cp(c风格的字符串)初始化string对象
string s(s1)
用string对象s1初始化s
string s(n,’c’)
将s初始化为’c’的n个副本
string s(cp,n)
将c风格字符串中前n个字符初始化s
string s(s1,pos)
s被初始化为从s1开始到末尾的字符
string s(s1,pos,len)
将s初始化为从s1下标pos的len个字符,如果pos>s1.size(),操作为定义,无论len有多长,最多只能复制s1.size()-pos个字符
string s=s1
复制构造函数(string对象)
string s=cp
复制构造函数(c风格字符串)
(2)string对象的读写:
string对象可以通过cout可以输出,通过cin和getline输入;cin和getline的区别:
1) cin读取并忽略开头的所有空白字符(空格、换行符、制表符),读取字符直到遇到空白字符,读取终止;
2) getline(cin,line)将istream参数作为返回值,getline并不忽略开头的换行符,读取输入的下一行,遇到换行符结束,但不保存换行符,如果第一个字符是换行符,结果为空字符串;
(3)string::size_type:
size()操作返回类型,该定义与unsignedint或者unsigned long有相同的含义,根据具体长度决定,所以程序员一般将返回类型赋值于string::size_type,这样避免越界或者负数的产生。
(4)string类型是字符的容器,也是顺序容器的一种,因此支持迭代器操作;
(5)string类型支持capacity和reserve操作,也就是容器的自增长操作;
(6)string不支持以栈的形式操纵容器,因此它不支持front、back、pop_back、push_front、pop_front操作。
(7)string对象支持与顺序容器共有的插入、删除、替换、取大小操作;
(8)string对象一些常用的特有操作:
s.substr(pos,n)
返回从下标pos开始的n个字符串
s.substr(pos)
返回从下标pos开始到s末尾的所有字符串
s.substr()
返回s的副本
s.append(args)
将args串接到s后面,返回s的引用
s.replace(pos,len,args)
删除s从pos开始的len个字符,并用args替换之,返回s的引用,不要求删除长度与插入长度相同
s.replace(b,e,args)
删除s中由迭代器b和e标记范围的字符,并用args替换之,返回s的引用,不要求删除长度与插入长度相同
上述中,args所有可能的表示如下:
s
另外一个string对象
s,pos,len
从s下标pos开始的n个字符
cp
Cp指向的C语言风格的字符串
Cp,len
Cp指向的c语言风格字符串的前len个字符
n,c
字符c的n个副本
b,e
b和e迭代器指向的元素
(9)string类型的查找函数:
String类型的查找操作全部返回string::size_type(找到匹配,是其相应的位置)类型或者string::npos(没有找到匹配)
s.find(args)
查找args在s中的第一次出现
s.rfind(args)
查找args在s中的最后一次出现
s.find_first_of(args)
查找args中任意字符在s中的第一次出现
s.find_last_of(args)
查找args中任意字符在s中的最后一次出现
s.find_first_not_of(args)
查找第一个不属于args的字符
s.find_last_not_of(args)
查找最后一个不属于args的字符
以上args所有可能情况如下:
c,pos
从下标pos开始查找字符c
s1,pos
从下标pos开始查找s1
cp,pos
从下标pos开始查找c风格字符串cp
cp,pos,n
从下标pos开始查找c风格字符串cp的前n个字符
(10)string类型字符串的链接操作“+”操作符左右必须至少有一个string类型:
string s1=”hello”+”nihao” 错误
string s1=”hello”+s2 正确
string s1=s2+”hello”+”nihao” 正确
string s1=“hello”+”nihao”+s2 错误
(11)string类型提供一个名为c_str的成员函数,可以提取string类型中的c风格字符串,该函数返回的指针指向const char类型的数组,必须将其赋值给const char类型的指针或者数组:
String str(“hello”);
Char *cr1=str.c_str(); 错误
Const char *cr2=str.c_str(); 正确
- C语言中string函数详解
- C语言中string函数详解
- C语言中string函数详解
- C语言中string函数详解
- C语言中string函数详解
- C语言中string函数详解
- C string类c_str() 详解
- c++string类详解收集
- Java中String类详解
- Java中String类详解
- C++中string类详解
- java中String类详解
- java中String类详解
- String类中方法详解
- C语言中string.h头文件中函数详解
- c++string类的常用方法详解
- String(c++)详解
- C++string详解
- [bzoj1061][NOI2008]志愿者招募
- 分分钟看懂互联网创业公司是如何吹牛的
- 冒泡排序
- iframe页面缓存加载
- 使用Cocos构建一个完整项目
- C++中string类详解
- [Java] 常用方法的解释
- 蓝桥杯_算法训练_安慰奶牛(用Kruskal、Prim算法分别实现)
- stackoverflow转载(关于对attributeSet理解)
- MVC学生管理
- centos log4cxx编译安装
- 路由器和网关的区别?
- equalsIgnoreCase()和equals()以及'=='的区别以及使用,
- dom4j 新增节点 自动出现xmlns=""