之所以抛弃 char* 的字符串而选用 C++ 标准程序库中的 strin g类, 是因为他和前者比较起来, 不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下( 甚至是 100%) 的需要。我们可以用= 进行赋值操作, == 进行比较, + 做串联(是不是很简单? )。我们尽可以把它看成是 C++ 的基本数据类型。好了,进入正题………首先,为了在我们的程序中使用 string 类型,我们必须包含头文件<string> 。如下: #include <string> // 注意这里不是 是C 字符串头文件 1 .声明一个 C++ 字符串声明一个字符串变量很简单: string Str; 这样我们就声明了一个字符串变量, 但既然是一个类, 就有构造函数和析构函数。上面的声明没有传入参数, 所以就直接使用了 string 的默认的构造函数, 这个函数所作的就是把 Str 初始化为一个空字符串。 String 类的构造函数和析构函数如下: a) string s; // 生成一个空字符串 s b) string s(str) // 拷贝构造函数生成 str 的复制品 c) string s(str,stridx) // 将字符串 str 内“始于位置 stridx ”的部分当作字符串的初值 d) string s(str,stridx,strlen) // 将字符串 str 内“始于 stridx 且长度顶多 strlen ”的部分作为字符串的初值 e) string s(cstr) //将C 字符串作为 s 的初值 f) string s(chars,chars_len) //将C 字符串前 chars_len 个字符作为字符串 s 的初值。 g) string s(num,c) // 生成一个字符串,包含 num 个c 字符 h) string s(beg,end) // 以区间 beg;end( 不包含 end) 内的字符作为字符串 s的初值 i) s.~string() // 销毁所有字符,释放内存都很简单,我就不解释了。 2 .字符串操作函数这里是 C++ 字符串的重点, 我先把各种操作函数罗列出来, 不喜欢把所有函数都看完的人可以在这里找自己喜欢的函数,再到后面看他的详细解释。 a) =,assign() // 赋以新值 b) swap() // 交换两个字符串的内容 c) +=,append(),push_back() // 在尾部添加字符 d) insert() // 插入字符 e) erase() // 删除字符 f) clear() // 删除全部字符,song 家的 VC6 不认识该成员函数 g) replace() // 替换字符 h)+ // 串联字符串 i) ==,!=,<,<=,>,>=,compare() // 比较字符串 j) size(),length() // 返回字符数量 k) max_size() // 返回字符的可能最大个数 l) empty() // 判断字符串是否为空 m) capacity() // 返回重新分配之前的字符容量 n) reserve() // 保留一定量内存以容纳一定数量的字符 o)[ ], at() // 存
string详解 来自淘豆网m.daumloan.com转载请标明出处.