C++ string

1:

s.empty() 如果 s 为空串,则返回 true,否则返回 false。
s.size() 返回 s 中字符的个数
s[n] 返回 s 中位置为 n 的字符,位置从 0 开始计数
s1 + s2 把 s1 和s2 连接成一个新字符串,返回新生成的字符串
s1 = s2 把 s1 内容替换为 s2 的副本
v1 == v2
比较 v1 与 v2 的内容,相等则返回 true,否则返
回 false
!=, <, <=, >, and >= 保持这些操作符惯有的含义

2: string::size_type 类型

从逻辑上来讲,size() 成员函数似乎应该返回整形数值,或如 2.2 节“建
议”中所述的无符号整数。但事实上,size 操作返回的
是 string::size_type 类型的值。我们需要对这种类型做一些解释。

string 类类型和许多其他库类型都定义了一些配套类型(companion type)。
通过这些配套类型,库类型的使用就能与机器无关(machine-independent)。
size_type 就是这些配套类型中的一种。它定义为与 unsigned 型(unsigned
int 或 unsigned long)具有相同的含义,而且可以保证足够大能够存储任
意 string 对象的长度。为了使用由 string 类型定义的 size_type 类型是
由 string 类定义。
任何存储 string 的 size 操作结果的变量必须
为 string::size_type 类型。特别重要的是,还要
把 size 的返回值赋给一个 int 变量。

虽然我们不知道 string::size_type 的确切类型,但可以知道它
是 unsigned 型(2.1.1 节)。对于任意一种给定的数据类型,它的 unsigned 型
所能表示的最大正数值比对应的 signed 型要大倍。这个事实表
明 size_type 存储的 string 长度是 int 所能存储的两倍。

使用 int 变量的另一个问题是,有些机器上 int 变量的表示范围太小,甚
至无法存储实际并不长的 string 对象。如在有 16 位 int 型的机器上,int 类
型变量最大只能表示 32767 个字符的 string 个字符的 string 对象。而能容
纳一个文件内容的 string 对象轻易就会超过这个数字。因此,为了避免溢出,
保存一个 stirng 对象 size 的最安全的方法就是使用标准库类
型 string::size_type。

3: string 对象中字符的处理

isalnum(c) 如果 c 是字母或数字,则为 True。
isalpha(c) 如果 c 是字母,则为 true。
iscntrl(c) 如果 c 是控制字符,则为 true
isdigit(c) 如果 c 是数字,则为 true。
isgraph(c) 如果 c 不是空格,但可打印,则为 true。
islower(c) 如果 c 是小写字母,则为 true。

isprint(c) 如果 c 是可打印的字符,则为 true。

ispunct(c) 如果 c 是标点符号,则 true。
isspace(c) 如果 c 是空白字符,则为 true。
isupper(c) 如果 c 是大写字母,则 true。
isxdigit(c) 如果是 c 十六进制数,则为 true。
tolower(c) 如果 c 大写字母,返回其小写字母形式,否则直接返回 c。
toupper(c) 如果 c 是小写字母,则返回其大写字母形式,否则直接返回 c。

可打印的字符是指那些可以表示的字符;

空白字符则是空格、制表符、垂直制表符、回车符、换行符和进纸符中的任意一种;

标点符号则是除了数字、字母或(可打印的)空白字符(如空格)以外的其他可打印字符。

原文地址:https://www.cnblogs.com/ruzhuan/p/3442170.html