C++Primer学习札记_标准库String类

一 标准string类型

   string 类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作。用户如果想使用string类型对象,必须包含相关头文件。

#include<string>
      using  std::string;

string对象的定义及初始化

    string标准库支持几个构造函数如下:

string s1;//将s1初始化为空串 
string s2(s1);//将s2初始化为s1
string s3("value");//将s3初始化为一个字符串面值的副本
string s4(n,'c');//将s4初始化为字符'c'的n个副本


三 string对象的读写

#include<iostream>
#include<string>

    using namespace std;
int main()
{
    string s;
    while(cin>>s)
        cout<<s<<endl;
    return 0;
}
     1.读取并忽略开头所有的空白字符(空格,换行,制表等)

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

   3.string 的输入操作符也会返回所读数据流,因此可以用来作为判断条件。

#include<iostream>
#include<string>

    using namespace std;
int main()
{
    string s;
    while(getline(cin,s))
        cout<<s<<endl;
    return 0;
}
    1.getline接受两个参数:一个输入流对象和一个string对象

    2.getline并不忽略开头的空白字符,换行符等。只要getline遇到换行符,即便是第一个字符,getline会停止读取,string被置为空。

   3.getline函数返回时丢弃换行符。

四 string对象的操作

s.empty();//若s为空,返回true,非空,返回false
s.size();//返回s中字符的个数
s[n];//返回s中位置为n的字符,位置从0开始计数
s1+s2;//s1和s2连接成一个字符串,返回新的字符串
s1=s2;//s1的内容替换为s2的副本
s1==s2;//比较s1,s2的内容,相等返回true
!=,<,<= ,>,>=  //都保持为操作符惯有的含义

注:size()函数的返回值似乎是整形值,但事实上,size操作返回的是string::size_type类型,这是为了适用于不同的机器。因此不要把size的返回值赋给一个int变量;

五 string对象的字符的处理

经常要对string对象中的单个字符串进行处理,判断是否为空格,是否为字母等,cctype提供一系列非常好用的函数。

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为大写,则返回小写形式,否则直接返回大写
toupper(c);//c为小写,则返回大写形式,否则直接返回小写

注:建议采用C标准库头文件的C++版本,C++标准库除了定义一些特定于C++的设施外,还定义了C标准库。C标准头文件命名格式为  name.h,而C++为cname。一般来说,cname和name.h 内容是一样的,但特别的,cname中定义的名字都在命名空间std内,而name.h的名字却不是,所以,尽量采用cname这种形式的头文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值