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

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[n]返回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[n]

引用下标是从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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值