一、二维数组的定义和存储
一、二维数组的定义
1、二维数组的应用:图、方阵
2、数组元素的存放顺序:内存是一维的,二维数组:按行优先
a[1]:表示第一行,也表示a[1][]的所有元素
二、二维数组的初始化、遍历
1、元素的初始化
1、不是按顺序存放,部分初始化
2、按顺序存放
3、二维数组只能省略行,不能省略列
1、打印杨辉三角形
2、打印数组中的最大值,行,列
三、多维数组
二、字符数组和字符串
一、一维字符数组和字符串
1、字符数组的用法
1)“abc”='a''b''c''\0'
2)逐个字符赋值
3)0=\0=NULL
2、字符串的用法
4)以字符串的形式赋值
5)用%s打印数组中存放的字符串
这种情况只适合打印以\0结尾的字符串,单个字符赋值有可能出现错误
二、二维字符数组和字符串
1、在赋值的时候,列赋值比要用的大一些,所有的输入都可以用字符串来表示(留出\0的位置,简化输入)
字符串存储-------二维数组!!!
2、打印
1)打印字符串
2)用最原始的数组的形式
3、逆序输出字符串
1)字符串不变,逆序输出
2)字符串倒叙
4)gets和scanf的区别
gets可以取空格,scanf不可以
三、字符串处理函数(一)
man+函数名:查看函数手册
一、strlen函数(只数有效字符,不含\0)
二、strcpy函数--字符串拷贝函数
拷贝源码:
三、strcat函数---字符串连接函数
拷贝加连接
四、strcmp-----字符串比较函数
从左到右逐个字符,直到不同字符。
如果完全相同,字符串较短的比较小。
四、字符串处理函数(二)
man isalpha:
一、strncpy---复制指定长度的字符串
二、strncat---附加指定长度字符串
三、strncmp---只比较前几个字母
四、strncasecmp---忽略大小写比较字符串的大小
五、strchr---在字符串中查找指定字符,返回第一次出现的地址
strrchr---在字符串中查找指定字符,返回最后一次出现的地址
六、strstr---查找字符串
printf("%d",strstr(s1,s2)-s1);
//显示查找的字符串首字符的位次
在命令行界面也可以查找字符串
七、
八、toupper---小写转大写
tolower---大写转小写
五、输入输出专题
一、字符输出函数
1)例子
二、格式输出printf
1、例子
2、特例:输出%
3、附加说明符
1)m
1、如果位数小于m,左边补0,如果位数大于m,则无效,原样输出
2、浮点数,小数点也算一位 123.456 %8d ----前面空一格
2).n
3)字符串的m.n
m:表示空格
.n:表示从前到后保留几个字母
4)+:显示符号
0:用0填充取代空格
4、字符输入函数getchar
ctrl+d结束输出
5、
1)提示语句最好是单独写一行
scanf("%4d",&a)-----控制第一个是4字符(因为没有换行,可以不用回车换行)
2)*nd吸收的值不会赋给变量
6、在输入字符中,空格也会作为有效字符,ascII为32
7、格式的垃圾处理
三种方法
8、字符串的输出
1)字符串通常存放在数组中
2)通常用gets()函数吸入
3)字符串输入通常少1位,默认以\0结尾
4)gets函数并不以空格作为结束,但scanf是
5)puts函数不需要换行符,自动换行
六、控制语句if
一、
1、阶梯型
if和else后面都要加{}
2、注意事项
3、求三角面积
七、控制语句switch
一、应用场景
1、多分支选择结构
2、判断7种文件类型bcd-lsp
二、语法
1、switch里的数据类型可以是整型、枚举、字符。其他类型不同
2、枚举类型
默认从0开始
三、break的作用
强行跳出switch体
如果没有break,则不会跳出switch
四、例子-成绩分级
八、循环语句-goto、while
一、循环结构
二、goto语句的格式!!!
loop:
if()
goto loop;
goto的优点:
集中于一处释放的应用:内存释放、文件描述符关闭、网络关闭、数据库关闭
三、while循环
1、1+...100求和
四、do-while
1、do while和while的区别:do while不管条件是否满足,肯定会执行一次。
2、求和例子
九、循环语句-for
1、for循环的省略
十、循环辅助语句
循环辅助语句
定义:程序因为特殊情况提前结束代码
一、break:判断是不是;打印是
可以跳出循环,但只能跳一层循环
有两个限制条件
打印半径1-10,但是面积不超过100的半径对应的面积
素数练习:
如何跳出多层循环
二、continue
结束本次循环,但是继续下一次
除了特殊条件,打印其他
1、例子:打印从100-110,不是3倍数的数字
三、return
十一、一维数组
数组
一、
1、一维数组
1、数组的地址是连续的
2、数组的地址是第一个数据的地址
3、数组的长度是n个数据的长度
4、语言数组越界,编译器不管
5、只能逐个数组元素引用,不能一次引用整个数组。
6、下标可以是常量,也可以是整型表达式
7、
二、冒泡排序
1、计算数组长度
n=siziof(a)/sizeof(int)
2、代码
十二、注意事项
常用命令
1、man isalpha
2、EOF
1)end of file,即文件结束符,EOF的值是-1。在文本文件中才能使用EOF作为结束符。
2)在使用scanf输入时,如果输入的数据正确,则scanf返回一个正整数,如果输入的是<ctrl+Z>组合键,则表示返回EOF,即-1。
3、Null相当于一个宏定义
#define NULL 0
4、C语言中,只有全局变量、static是放在静态区的,只有在程序结束的时候才释放内存,指针放在栈当中
5、