2.4循环结构&2.5数组

2.4.1~2.4.2while语句y以及do while语句

while是先执行判断循环语句再执行循环体

while(){

}

do…while是先执行循环体一次再判断循环语句

do{

}while();

2.4.3 for语句

2.4.4break语句和continue语句

break的作用是直接退出当前循环。
continue则是临时结束循环的当前轮回,再进入下一轮回。

2.5数组

2.5.1一维数组

1.int a[20]={1,2,3};
2.对数组中前三个元素赋值后,后面没有赋值的部分默认为0。
3.但如果数组一开始没有赋初值,数组中的每一个元素都可能是一个随机数,并不一定是0.
4.如果想要给整个数组都赋初值0,只需要把第一个元素赋为0,或者只用一个大括号表示。

2.5.2冒泡排序

#include<cstdio>
int main() {
	int a[5] = {1,3,5,2,8};
	for (int i = 0; i < 4; i++)
		for (int j = 0; j < 4 - i; j++)
			if (a[j] > a[j + 1]) {
				int temp = a[j];
				a[j] = a[j + 1];
				a[j + 1] = temp;
			}
	for (int i = 0; i < 5; i++)
		printf("%d ", a[i]);
	return 0;
				
}

2.5.3二维数组

二维数组在定义时赋值

int a[6][8]={{3,1,2},{8,4},{},{1,2,3,4,5}};

数组如果较大(大概在106级别),则需要将其定义在主函数外面,否则会使程序异常退出,原因是函数申请的局部变量来自系统栈,允许申请的空间较小;而函数外部申请的全局变量来自静态存储区,允许申请的空间较大。

2.5.4memset

memset(数组名,值,sizeof(数组名));
使用该函数需要在开头添加string.h文件,建议初学者使用memset赋0或-1。这是因为memset使用的是按字节赋值。

2.5.5 字符数组

char s[30] = { 'a','b','f' ,'\0'};
char str[30] = "dragon";

scanf,printf
getchar/putchar
puts/gets

gets识别换行符\n作为输入结束,因此scanf完一个整数后,如果要使用gets,需先用getchar接收整数后的换行符,并将其存放于一维数组中。
scanf和gets在接受输入字符串后会自动添加一个结束符\0,而getchar不会。

1.结束符的ASCII码为0,即空字符NULL,占用一个字符位。因此开字符数组的时候记得字符数组的长度要比实际存储字符串的长度至少多1。注意:int型数组的末尾不需要加\0,只有char类型需要。还要注意\0跟空格不是同一个东西,空格的ASCII码是32.
2.如果不是使用scanf函数的%s格式或者gets函数输入字符串(例如getchar),请一定要在输入的每个字符串后加入“\0”,否则printf和puts输出字符串会因为无法识别字符串末尾而输出一大堆乱码。

2.5.6string.h头文件

1.strlen()

识别字符串长度并输出。

2.strcmp()

比较两个字符串大小,比较原则是按字典排序
strcmp(字符数组1,字符数组2);
1.如果字符数组1<字符数组2,则返回一个负整数
2.如果字符数组1==字符数组2,则返回0
3.如果字符数组1>字符数组2,则返回一个正数

strcpy()

strcpy函数可以把一个字符串赋值给另一个字符串
strcpy(字符数组1,字符数组2),是把字符数组2赋值给字符数组1,这里的“复制”包括结束符\0

strcat()

strcat(字符数组1,字符数组2);
把字符数组2接到字符数组1后面

2.5.7sscanf与sprintf

sscanf(str,“%d”,&a);把字符数组str中的内容以%n的格式写到a中
sprintf(str,“%d”,a);把a中的内容以%d的格式写到字符数组str中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值