C语言流程控制(5)
(6)字符串常见操作:
1.strlen:
获得字符串的长度
2.strcpy
字符串的拷贝
注意:
1.目的空间一定要足够大存放的下源字符串
3.strcat
字符串的拼接,在第一个字符串末尾拼接上第二个字符串
注意:第一个字符串要空间足够大
4.strcmp
字符串的比较
如果两个字符串相同,结果为0
如果第一个字符串 > 第二个字符串,结果为 > 0 的值
如果第一个字符串 < 第二个字符串,结果为 < 0 的值
比较方法:两个字符串比较,从左到右每个字符进行比较,不相同的字符,谁的ASCII码值大,字符串就大
2.二维字符型数组:
(1)定义:
数据类型 数组名[行数][列数];
char str[5][32];
(2)存储:
1.连续性
2.有序性
(3)初始化
局部初始化:
char str[5][32] =
{
{'h', 'e', 'l', 'l', 'o', '\0'},
{'w', 'o', 'r', 'l', 'd', '\0'},
{'h', 'o', 'w', '\0'},
{'a', 'r', 'e', '\0'},
{'y', 'o', 'u', '\0'},
};
char str[5][32] = {
{"hello"},
{"world"},
{"how"},
{"are"},
{"you"}
};
char str[5][32] = {"hello", "world", "how", "are", "you"};
char str[5][32] = {0};
函数(1):
特性:
1.避免重复性代码
2.程序代码模块化
1.函数的定义:
函数类型 函数名(数据类型1 形式参数1, 数据类型2 形式参数2, ...)
{
函数体;
return 返回值;
}
函数类型:函数运行结果的类型
int float double char void
注意:1.函数类型如果不写,默认为int类型
2.函数返回值缺省,应该写void类型
3.函数类型应该与返回值的类型一致,如果不一致以函数类型为准
函数名注意:
1.由字母、数字和下划线构成,不能以数字开头
2.不要与C语言关键字重名
3.最好不要与C语言库函数重名
4.最好见名知意(动宾形式)
2.函数的调用:
函数名(实际参数1, 实际参数2, ...);
注意:
1.实参个数必须与形参个数一一对应
2.实参可以是常量、变量、或者表达式
3.函数调用时会发生实参向形参空间的拷贝,实参将值拷贝给形参(一一对应),实参类型与形参类型不一致时,将实参类型默认转换为形参类型
3.函数的声明:
定义: 定义需要为变量开辟空间
声明: 该变量是存在的,不需要开辟空间
注意:如果被调函数的定义在主调函数的下方,需要对被调函数声明一下
作业
1.不使用strlen实现strlen的功能 不使用strcpy实现strcpy的功能 不使用strcat实现strcat的功能 不使用strcmp实现strcmp的功能
2.封装三个函数:
函数1,传入年份,获得该年是闰年还是平年,闰年返回1 平年返回0
int IsLeepYear(int Year);
函数2,传入年-月-日信息 打印出这一天是该年的第几天
int GetDayOfYear(int Year, int Mon, int Day);
函数3,传入年-月-日信息,打印该年剩余多少天
int GetLeftDayOfYear(int Year, int Mon, int Day);