C++第五天 2016-12-04 3.1-3.2

 

 

  • 第三章 字符串、向量和数组

    3.1 命名空间的using声明

    调用命名空间使用域操作符(::),使用using 声明(using declaration)可以无需使用域操作符,每个名字都需要独立的using声明,头文件不应该包含using声明。

    3.2 标准库类型string

    string可以用来表示可变长的字符序列。使用前必须包含string头文件,using std::string

    3.2.1 定义和初始化string对象

    string的默认初始化是空字符串。使用等号初始化执行的是拷贝初始化 copy initialization),编译器把等号右侧初始值拷贝至新创建的对象中去。不用等号则是直接初始化(direct initialization)。

    string string string s5 = "hiya" s6 ("hiya"); s7 cccccccccc

    3.2.2 string对象的操作

    重要 输入 在输入时会自动忽略开头的空白(空格符、换行符、制表符等),然后从第一个真正的字符读到下一个空白为止。使用while可以读取在非法对象前所有字符。getline只要遇到换行符就会执行操作并返回结果。(换行符是抛弃,得到的string中不包含换行符)

    重要 String.empty 得到是bool类型,可以使用判断语句,size函数返回string对象长度,得到的是string::size_type类型,是一个无符号类型的值(因为长度不能为负数)。c++11中使用auto可以去推断得到一个是unsigned int

    重要 比较string,逐一比较大小,并且对大小写敏感。

    1、如果两个string对象长度不同,较短string对象的每个字符都与较长string对象对应相同,

    较短<较长。

    2、位置上如果不一致,则结果是第一对相异字符比较的结果。

    重要 string赋值可以直接使用等于号赋值,相加则是两个字符串的融合。

    重要 字面值和string对象相加,混在一条语句中使用时,必须确保每个加法运算符两侧至少有一个是string

    字符串字面值和string是不同的类型。

    3.2.3 处理string对象中的字符

    重要 如果想对string中的每个字符进行操作,使用范围 forrange for)语句遍历每个元素并操作

    For(declaration: expression)                           statement

    每次迭代,declaration部分变量会初始化为expresstion部分的下一个元素值

    for(auto c :s )  对于s中的每一个元素c

    重要 改变自己可以使用引用

    for(auto &c : s) c =toupper   ( c );

    重要 如果只想处理部分数值:

    1、使用下标

    下表运算符([   ])接受参数是string::size_type,从0开始计数s[0]是第一个 s[s.size()-1]是最后一个

     2、使用迭代器

    把第一个词改成大写形式

    for (decltype (s . size ( ) ) index index ! = s. size ( ) && !isspace (s (index]); ++index) toupper (s ; s [ index]

    逻辑与运算符(&&)只有左侧为真才会去检测右侧,左侧是index达到s.size大小之前才会继续判断。

 

isalnum(c) isalpha (c) iscntrl (c) isdigit(c) isgraph (c) islower(c) isprint(c) ispunct (c) isspace(c) isupper (c) isxdigit (c) tolower(c) toupper (c) 表 3 . 3 : cctype 头 文 件 中 的 函 数 当 c 是 字 母 或 数 字 时 为 真 当 c 是 字 母 时 为 真 当 c 是 控 制 字 符 时 为 真 当 c 是 数 字 时 为 真 当 c 不 是 空 格 但 可 打 印 时 为 真 当 c 是 小 写 字 母 时 为 真 当 c 是 可 打 印 字 符 时 为 真 ( 即 c 是 空 格 或 c 具 有 可 视 形 式 ) 当 c 是 标 点 符 号 时 为 真 ( 即 c 不 是 控 制 字 符 、 数 字 、 字 母 、 可 打 印 空 白 中 的 一 种 ) 当 c 是 空 白 时 为 真 ( 即 c 是 空 格 、 横 向 制 表 符 、 纵 向 制 表 符 、 回 车 符 、 换 行 符 、 进 纸 符 中 的 一 种 ) 当 c 是 大 写 字 母 时 为 真 当 c 是 十 六 进 制 数 字 时 为 真 如 果 c 是 大 写 字 母 , 输 出 对 应 的 小 写 字 母 ; 否 则 原 样 输 出 c 如 果 c 是 小 写 字 母 , 输 出 对 应 的 大 写 字 母 : 否 则 原 样 输 出 c

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值