C++ primer plus 4.1--4.3 部分笔记 //自用

目录

4.1.1 初始化数组

4.1.2 数组初始化规则

4.1.3 c++11数组初始化方法

4.2 字符串

4.2.2 strlen

4.2.4 每次读取一行字符串输入 / cin getline get

4.3 string类简介

4.3.2 string基础操作

4.3.3 string 类的其他操作

4.3.4 string类I/O

4.3.5其他形式的字符字面值 / 原始字符串


4.1.1 初始化数组

初始化数组 举例

int shuzuming[3] = {14, 3, 5};

如果没有初始化(没有大括号),元素值是以前驻留(残存)在该内存单元的值。

{

4.3.4中提到

未初始化的字符,因内容不确定,故结尾的空字符位置也不确定,使用strlen()计算char数组长度时将是不确定的。

}

sizeof得到字符数(不是元素数),即使是对数组。

4.1.2 数组初始化规则

只有定义数组时可以初始化,此后不能整个数组一起赋值了(但可以用下标给每个元素单独赋值),也不能将一个数组赋给另一个数组。

{

4.3.3中提到 :   

strcpy(charr1, charr2)将charr2复制到charr1中

strcat(charr1, charr2)将charr2加到charr1后面

}

若初始化的值少于数组里元素数目,则从左到右依次赋值,其余为0.

如果初始化时 [ ] 为空,编译器将自己计算元素个数。

4.1.3 c++11数组初始化方法

初始化数组可以忽略等号。

int shuzuming[3] {14, 3, 5};

有大括号,但大括号内为空,则数组内元素均为0.

列表(/数组)初始化禁止缩窄转换。

4.2 字符串

char cat[5] = {'f', 'g', 'h', 'j', '\0'}; //是字符串
char cat[5] = {'f', 'g', 'h', 'j', 'k'};  //不是字符串

char 数组 以 \0 结尾(向上箭头)

字符串常量 字符串字面值(向下箭头)

char fish[5] = "fish";

第5个字符是‘\0’

4.2.2 strlen

strlen()计算 char数组中 可见字符的个数,(也就是不计算 \0),使用strlen要引用头文件ctring

strlen从数组第一个字符开始计算,直到遇到 \0

4.2.4 每次读取一行字符串输入 / cin getline get

面向行的输入:getline()

用回车键确定输入结尾 cin.getline(),它读取但不保存换行符,储存时用空字符代替换行符

有两个参数,第一个是用来储存的数组的名称,第二个参数是要读取的字符数。如果第二个参数是20,则该函数最多读取19个字符,余下空间用来储存空字符。

面向行的输入:get()//两个参数

cin.get()不读取换行符,使其保留在输入流中

有两个参数,第一个是用来储存的数组的名称,第二个参数是要读取的字符数。如果第二个参数是20,则该函数最多读取19个字符,余下空间用来储存空字符。

变体:cin.get() //不带任何参数

可读取下一个字符,即使是换行符。

可以用来处理换行符,为读入下一行做准备。

注:cin >>...... 会把换行符留在输入流中

{

6.7中提到

对象cin本身被用作测试条件时,如果最后一个读取操作成功,它将被转换为布尔值true,否则被转换为false

6.11第二题中用到

}

4.3 string类简介

要使用string需包含头文件 string

初始化时,与数组初始化相比,删去[...]即可

string的长度编译器自动设置,若未初始化,则长度自动设为0

4.3.2 string基础操作

string可以使用 = 将一个string对象赋给另一个string

可以使用+将两个string类合并

4.3.3 string 类的其他操作

计算string元素数

名字.size()

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string asd = "abcd";
	cout << asd.size();
    //输出结果是4
	return 0;
}
//此处asd是一个string对象
//size()是string类的一个方法

4.3.4 string类I/O

输入in:

getline(cin, 名字);

这个getline()不是类方法。它将cin作为参数,指出应到哪里读取输入。

同时,可以将cin和cout用于string对象。

4.3.5其他形式的字符字面值 / 原始字符串

原始字符串 R"!@#( 一些文本)!@#"

!@#可以时其他符号但要保持顺序一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值