C++——数组与字符串

目录

一、数组

1.1定义与初始化

1.1.1语法形式

1.1.2使用

1.1.3存储

1.1.4初始化

1.2作函数参数

1.3对象数组

1.3.1定义与访问

1.3.2初始化

1.3.3数组元素所属类的构造函数

二、字符串

2.1字符数组(C风格)

2.1.1字符型数据

2.1.2字符数据的输入输出

2.1.3字符数组

2.2string 类

2.2.1常用构造函数

2.2.2常用操作

2.2.3输入整行字符串


一、数组

一组具有相同数据类型数据的有序集合

数组元素的类型称为该数组的基类型

1.1定义与初始化

1.1.1语法形式

类型说明符  数组名[常量表达式][常量表达式]……

1.1.2使用

先声明,后使用

只能逐个引用数组元素,而不能一次引用整个数组

1.1.3存储

1、一维数组

数组元素在内存中顺次存放,它们的地址是连续的。元素间物理地址上的相邻,对应着逻辑次序上的相邻,如

2、二维数组

按行存放,如: float a[3][4];  可理解为:

其中数组a的存储顺序为:a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23

1.1.4初始化

1、一维数组

在定义数组时给出数组元素的初始值

  • 列出全部元素的初始值,如:static int a[10]={0,1,2,3,4,5,6,7,8,9};
  • 只给一部分元素赋初值,如:static int a[10]={0,1,2,3,4};
  • 在对全部数组元素赋初值时,可以不指定数组长度,如:static int a[]={0,1,2,3,4,5,6,7,8,9}

2、二维数组

  • 将所有初值写在一个{}内,按顺序初始化,如:static int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
  • 分组列出二维数组元素的初值,例如:static int a[3][4]={ {1,2,3,4},{5,6,7,8},{9,10,11,12}};
  • 只对部分元素初始化,如:static int a[3][4]={ {1},{0,6},{0,0,11}};
  • 列出全部初始值时,第1维下标个数可以省略,如:static int a[][4]={ {1,2,3,4},{5,6,7,8},{9,10,11,12}};

如果不作任何初始化,内部auto型数组中会存在垃圾数据,static数组中的数据默认初始化为0

如果只对部分元素初始化,剩下的未显式初始化的元素,将自动被初始化为0

#include<iostream>
using namespace std;

const char key[] = { 'a', 'c', 'b', 'a', 'd' };
const int NUM = 5;

int main() {
	char c;
	int que = 0, correct = 0;
	cout << "Enter 5 answers:\n";
	while(cin.get(c)) {		//条件 " cin.get(c) " 中是句号而不是逗号
		if(c == '\n') {		//输入完通过回车显示结果,但换行符不能算作输入的内容 
			cout << "\nScore " << (float)correct / NUM * 100 << "%\n";
			que = 0, correct = 0;	//计数器清零,且位于输出结果之后 
		} else {
			if(c == key[que])
				correct++, cout << " ";	//空格表示正确 
			else
				cout << "*";	//星号表示错误 
			que++;	//无
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值