字符串是程序中经常要表达和处理的数据,我们通常是采用字符数组或字符指针来表示字符串。 STL 为我们提供了另一种使用起来更为便捷的字符串的表达方式: string。 string 类的定义在头文件中。string 类其实可以看作是一个字符的 vector, vector 上的各种操作都可以适用于 string,另外, string 类对象还支持字符串的拼合、转换等操作。下面先来看一个简单的例子:
#include <iostream>
#include <string>
using namespace std;
int main(){
string s = "Hello! ", name;
cin >> name;
s += name;
s += '!';
cout << s << endl;
return 0;
}
常用函数及其说明
-
isalnum(c)
如果c是字母或数字,返回 true -
isalpha(c)
如果c是字母,返回true -
iscntrl(c)
c是控制符,返回true -
isdigit(c)
如果c是数字,返回true -
isgraph(c)
如果c不是空格,则可打印,,则为true -
islower(c)
如果c是小写字母,则为true -
isupper(c)
如果c是大写字符,则为true -
isprint(c)
如果c是可打印的字符,则为true -
ispunct(c)
如果c是标点符号,则为true -
isspace(c)
如果c是空白字符,则为true -
isxdigit(c)
如果c是十六进制数,则为true -
tolower(c)
如果c是大写字符,则返回其小写字母,否则直接返回c -
toupper(c)
跟tolower相反 -
s.insert( it , p )
把字符串p插入到it的位置 -
s.insert(p,n,t)
迭代器p元素之前插入n个t的副本 -
s.insert(p,b,e);
迭代器p元素之前插入迭代器b到e之间的所有元素 -
s.insert(p,s2,poe2,len)
在下标p之前插入s2下标从poe2开始长度为len的元素 -
s.insert(pos,cp,len)
下标pos之前插入cp数组的前len个元素。 -
s.assign(b,e)
用迭代器b到e范围内的元素替换s -
s.assign(n,t)
用n个t的副本替换s -
a.assign(s1,pos2,len)
从s1的下标pos2开始连续替换len个。 -
s.replace ( 3 , 3 , " good " )
从第三个起连续三个替换为good -
s.substr(i,j)
截取s串中从i到j的子串 -
string::npos
判断字符串是否结束 -
s.erase( 3 )||s.erase ( 0 , 4 )
删除第四个元素或第一到第五个元素 -
s.find ( " cat " )
超找第一个出现的字符串”cat“,返回其下标值,查不到返回 4294967295,也可查找字符; -
s.append(args)
将args接到s的后面 -
s.compare ( " good " )
s与”good“比较相等返回0,比"good"大返回1,小则返回-1; -
reverse ( s.begin(), s.end () )
反向排序函数,即字符串反转函数