数组与一维数组:
-
数组:为方便定义同类型一群数组
-
定义:存储相同类型数据的多个数据的一种线性表数据结构
-
使用:命名规则与变量相同
int stu_no[60]; //类型名 数组名[常量表达式]
-
-
一维数组的初始化:
- 在定义数组的时候就对数组的全部元素初始化:
int stu_no[5] = {101, 102, 103, 104, 105}; - 在定义数组的时候对部分元素进行初始化:
int stu_no[5] = {101, 102};
后面未初始化的默认赋初值0 - 在定义数组的时候就对数组的全部元素初始化,可以不指定数组长度:
int stu_no[] = {101, 102, 103, 104, 105}; - 定义的时候让系统知道数组的长度就可以了,也就是定义即确定大小
- 在定义数组的时候就对数组的全部元素初始化:
字符数组:
-
定义:存储字符的数组
-
初始化:
//定义之后对每个字符初始化(未初始化部分值随机) char szbuf[10]; szbuf[0] = 'h'; szbuf[1] = 'e'; szbuf[2] = 'l'; szbuf[3] = 'l'; szbuf[4] = 'o'; //定义初始化(未初始化部分值为0,可于首位‘\0’处字符串截止) char szbuf[10] = {'h', 'e', 'l', 'l', 'o'}; //or char szbuf[10] = "hello"; //初始值个数大于数组长度,则报错 //自动初始化长度 char szbuf[] = {'h', 'e', 'l', 'l', 'o'}; //or char szbuf[] = "hello";
-
字符数组与字符串的区别:
字符串有结束标识符 ‘\0’ ,而字符数组并不自动添加。及在一定条件下字符数组可转化为字符串。
//以下二者均可被看做字符串 char szbuf[10] = {'h', 'e', 'l', 'l', 'o'}; char szbuf[10] = "hello";
-
字符数组的输入输出:
#include<iostream> using namespace std; int main(){ char szbuf[50]; cin>>szbuf; cout<<szbuf<<endl; char szbuf01[50] = {'h', 'e', 'l', 'l', 'o', '\0', ' ', 'f', 'r', 'i', 'e', 'n', 'd', 's', '.'}; cout << szbuf01 << endl; }
-
练习:
#include <iostream> using namespace std; int main() { int i = 0 , count = 0; char szbuf[100] = "hello, friends, my name is cctry.com. what is your name ?"; cout << "替换前:"<<szbuf<<endl; while(szbuf[i] != '\0') { if(szbuf[i] == 'i') { szbuf[i] = '@'; ++count; } ++i; } cout << "替换后:" << szbuf << "\r\n有" << count <<"个\'i\'被替换"<<endl; return 0; }