您的位置:首页 > 编程语言 > C语言/C++

C++学习笔记(二) —— 标准库String类

2015-02-28 10:48 274 查看
1. string支持的几个构造函数:

string s1;默认构造函数,s1为空串
string s2(s1);将s2初始化为s1的一个副本
string s3("value");将s3初始化为一个字符串字面值副本
string s4(n,'c');将s4初始化为'c'的n个副本
========================================================================

例子:s1和s2的值是多少?

#include <iostream>

#include <string>

using namespace std;

string s;

int main()

{

string s1;

cout << "s: " << s << endl;

cout << "s1: " << s1 << endl;

return 0;

}

*******************************************************************

结果:均为空字符串

s:

s1:

*******************************************************************

========================================================================

2. string类的读写

2.1 从标准输入读取string,并将读入的串存储在s中。string类型的输入操作符:

2.1.1 读取并忽略开头所有的空白字符(如空格、换行符、制表符等);

2.1.2 读取字符直至再次遇到空白字符,读取终止。

******************************************************************

例子:

<span style="font-size:18px;"><span style="font-size:18px;">#include <iostream>
#include <string>

using namespace std;

int main()
{
string s1;
cin >> s1;
cout << "s1: " << s1 << endl;

return 0;
}</span></span>
结果:

输入为 " hello world "

输出为 "hello"

******************************************************************

2.2 getline函数

getline(istream &in, string &s)

从输入流读入一行到string s

•功能:

–从输入流中读入字符,存到string变量

–直到出现以下情况为止:

•读入了文件结束标志

•读到一个新行

•达到字符串的最大长度

–如果getline没有读入字符,将返回false,可用于判断文件是否结束

=====================================================

注意:由于getline函数返回时丢弃换行符,换行符将不会存储在string对象中。

=====================================================

3. string 的操作:

s.empty()如果s为空串,则返回true,否则返回false
s.size()返回s中字符的个数
s
返回s中位置为n的字符,位置从0开始计数
s1+s2把s1和s2连接成一个新字符串,返回新生成的字符串
s1 = s2把s1内容替换为s2的副本

v1 == v2比较v1与v2的内容,相等则返回true,否则返回false
!= < <= 保持这些操作符惯有的含义
> >=保持这些操作符惯有的含义
3.1 s.size() 返回值的类型为:string::size_type类型。注意:不要将其返回值赋值给int型。

3.2 +

当进行string对象和字符串字面值混合连接操作时,+操作符的左右操作数必须至少有一个是string类型的。

注意字符串字面值是常量。

3.3 s

引用下标是从0开始的。并且超出下标应用范围,将溢出。可计算下标值,例如:s[n1+n2] n1、n2:整型

3.4 string对象中字符的处理

这些函数都在cctyoe头文件中定义

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
isupper(c)如果c是大写字母,则为true
tolower(c)如果c是大写字母,则返回其小写字母形式,否则直接返回c
toupper(c)如果c是小写字母,则返回其大写字母形式,否则直接返回c
isxdigit(c)如果c是十六进制,则为true
isspace(c)如果c是空白字符,则为true
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: