目录
1.字符串常见操作:
1.strlen:
获得字符串的长度
char a[] = {"hello"};
int x;
x = strlen(a);
2.strcpy
字符串的拷贝
注意:
1.目的空间一定要足够大存放的下源字符串
char a[] = {"hello"};
char b[32] = {0};
strcpy(b,a);
练习:
定义两个数组src和dst,从终端接收一个字符串存入
src数组中,并将src中的字符串拷贝到dst中
(不能使用strcpy)
3.strcat
字符串的拼接,在第一个字符串末尾拼接上第二个字符串
注意:
1.第一个字符串要空间足够大
char a[32] = {"hello"};
char b[] = {"world"};
stract(a,b);
练习:
定义两个数组str1和str2,从终端接收两个字符串存入
str1和str2中,并将str2字符串拼接到str1的末尾
(不能使用strcat)
4.strcmp
字符串的比较
如果两个字符串相同,结果为0
如果第一个字符串 > 第二个字符串,结果为 > 0 的值
如果第一个字符串 < 第二个字符串,结果为 < 0 的值
两个字符串比较,从左到右每个字符进行比较,不相同的字符,谁的ASCII码值大,字符串就大
2.二维字符型数组:
1.定义:
数据类型 数组名[行数][列数];
char a[5][32];
2.存储:
1.连续性
2.有序性
3.初始化
1.局部初始化:
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"};
2.全部初始化
char str[5][32] = {0};清零
3.默认初始化
局部初始化时,除赋值元素外其余元素默认复制为'\0'
===========================================================================================================================
函数:
特性:
1.避免重复性代码
2.程序代码模块化
1.函数的定义:
函数类型 函数名(数据类型1 形式参数1, 数据类型2 形式参数2, ...)
{
函数体;
return 返回值;
}
#include<stdio.h>
int hanshu(int a,int b)
{
return ;
}
int main(void)
{
return 0;
}
函数类型:函数运行结果的类型
int float double char void
1.函数类型如果不写,默认为int类型
2.函数返回值缺省,应该写void类型
3.函数类型应该与返回值的类型一致,如果不一致以函数类型为准
函数名:
1.由字母、数字和下划线构成,不能以数字开头
2.不要与C语言关键字重名
3.最好不要与C语言库函数重名
4.最好见名知意(动宾形式)
GetMaxNum
GetMinNum
GetAvgScore
DownLoadFile
2.函数的调用:
函数名(实际参数1, 实际参数2, ...);
#include<stdio.h>
int hanshu(int a,int b)
{
return ;
}
int main(void)
{
int x,y;
hanshu(x,y);
return 0;
}
注意:
1.实参个数必须与形参个数一一对应
2.实参可以是常量、变量、或者表达式
3.函数调用时会发生实参向形参空间的拷贝,实参将值拷贝给形参(一一对应),实参类型与形参类型不一致时,将实参类型默认转换为形参类型
练习:
封装4个函数 Add Sub Mul Div
从终端接收2个数,调用4个函数打印出四则运算的结果
3.函数的声明:
定义: 定义需要为变量开辟空间
声明: 该变量是存在的,不需要开辟空间
如果被调函数的定义在主调函数的下方,需要对被调函数声明一下
#include<stdio.h>
int hanshu(int a,int b);
int main(void)
{
return 0;
}
int hanshu(int a,int b)
{
return ;
}
作业:
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);
1,
2,