标准库类型string表示可变长的字符序列,使用string类型必须首先包含string头文件。作为标准库的一部分,string定义在命名空间std中。
#include<string>
using namespace std; //或者using std::string;
1.定义和初始化string对象
//初始化string对象的方式
string s1; //默认初始化,s1是一个空串
string s2(s1); //s2是s1的副本 (string类的拷贝构造)
string s2 = s1; //等价于s2(s1),s2是s1的副本 (string类的拷贝赋值)
string s3("value"); //s3是字面值"value"的副本,除了字面值最后的那个空字符外
string s3 = "value"; //等价于s3("value"),s3是字面值"value"的副本
string s4(n,'c'); //把s4初始化为由连续n个字符c组成的串
注意: 与char型字符的区别。字符串string初始化时双引号" ",而C语言的char型初始化为单引号。
char s='g';
2.string对象上的操作
os<<s //将s写到输出流os当中,返回os
is>>s //从is中读取字符串赋给s,字符串以空白分割,返回is
getline(is,s) //从is中读取一行赋给s,返回is
s.empty() //s为空返回true,否则返回false
s.size() //返回s中字符的个数
s[n] //返回s中第n个字符的引用,位置n从0计起
s1+s2 //返回s1和s2连接后的结果
s1=s2 //用s2的副本代替s1中原来的字符
s1==s2 //如果s1和s2中所含的字符完全一样,则他们相等;string对象的相等性判断
对字母的大小写敏感
s1!=s2
<, <=, >, >= //利用字符在字典中的顺序进行比较,且对字母的大小写敏感
3.处理string对象中的字符
针对某个字符的特性判断函数
C++标准库中cctype中的主要函数,该库主要是字符处理功能,这个头文件声明了一组函数来分类和变换单个字符。这个库中主要有两种函数:一类负责字符分类功能;一类负责字符转换功能。
#include <cctype>的函数
isalnum() //如果参数是字母数字,即字母或数字,该函数返回true
isalpha() //如果参数是字母,该函数返回真
isblank() //如果参数是空格或水平制表符,该函数返回true
iscntrl() //如果参数是控制字符,该函数返回true
isdigit() //如果参数是数字(0~9),该函数返回true
isgraph() //如果参数是除空格之外的打印字符,该函数返回true
islower() //如果参数是小写字母,该函数返回true
isprint() //如果参数是打印字符(包括空格),该函数返回true
ispunct() //如果参数是标点符号,该函数返回true
isspace() //如果参数是标准空白字符,如空格、进纸、换行符、回车、水平制表符
或者垂直制表符,该函数返回true
isupper() //如果参数是大写字母,该函数返回true
isxdigit() //如果参数是十六进制的数字,即0~9、a~f、A~F,该函数返回true
tolower() //如果参数是大写字符,则返回其小写,否则返回该参数
toupper() //如果参数是小写字母,则返回其大写,否则返回该参数
使用基于范围的for语句遍历和处理字符
//遍历字符串输出
string str("some string");
for(auto c : str ) //auto为C++ 11特性,也可以用size_type类型定义size_type c;
cout << c <<endl;
//改变字符串中的字符
//转化成大写形式
string s("Hello Word!!!");
for (auto &c : s)
c = toupper(c);
cout << s << endl;
使用下标进行遍历处理和随机访问
下标法str[index]或者str.at(index)获取字符串内指定位置的字符
4.string类的成员函数以及STL标准库算法
(未完待续...)
std::string::substr
find ,find_first_of ,find_last_of , find_if , adjacent_find的使用
参考文献:http://www.cplusplus.com/reference/string/string/find_first_of/
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。