一 C语言字符串函数的详细介绍
1 读入字符串函数gets(字符数组) 如:gets(str);
2 输出字符串函数 puts(字符数组)
3 字符串连接函数 strcat(字符数组1,字符数组2)
4 字符串复制函数 strcpy(字符数组1,字符数组2)
如果两个字符数组长度不同,前长后短,则长的最后几个字符的内容是无法预知的
5 字符串比较函数 strcmp
返回值为:如果相同则为0;前大的返回正整数,后大的返回负整数
6 测字符串长度函数 strlen(字符数组)
7 转换为小写字符函数 strlwr(字符串)
8 转换为大写字符函数 strupr(字符串)
二 模块化的程序设计概念
人们不会采用手工业方式,在用到电源时临时去生产一个电源,而是提前生产出来的,这就是模块化的程序设计,在用到某个功能时,如果他经常的被用到,我们就把它单独做成一个函数,这样以后用此函数就可以了。
三 变量的存储方式和生存期
静态存储方式是指在程序运行期间由系统在静态存储区分配存储空间的方式,在程序运行期间不释放,而动态存储方式则是在函数调用期间根据需要在动态存储区分配存储空间的方式。
全局变量采用静态存储方式,在程序开始执行时给全局变量分配存储区,程序执行完毕释放。在程序执行过程中他们占据固定的存储单元,而不是动态地进行分配和释放。在函数中定义的变量,在函数调用开始时分配动态存储空间,函数结束时释放这些空间,在程序执行过程中,这种分配和释放是动态地。
1 auto 声明自动变量,一般都是这种类型,可以省略
2 static 声明静态变量,它主要用于对局部变量作用,使其存储单元不释放,对静态局部变量赋初值只能赋一次,
不要多用静态局部变量,因为当调用次数多时往往弄不清他当前值是多少,同时他会多占内存(长期占用不释放,而不能像动态存储那样)
3 registe 声明寄存器变量
4 extern 声明外部变量的作用范围
(1) 如果一个函数只能被本文件中其他函数所调用,就称为内部函数
(2) 函数首部加上extern,则此函数是外部函数,可供其他文件调用,c语言规定:如果在定义函数时省略extern,则隐含为外部函数。
四 指针变量的定义形式
int *p p为指向整型数据的指针变量
int a[] 定义整型数组a,它有n个元素
int *p[n] 定义指针数组p,它有n个指向整型数据的指针元素组成
int(*p)[n] p为指向含有n个元素的一维数组的指针变量
int *p() p为返回一个指针的函数,该指针指向整型数据
int (*p)() p为指向函数的指针,该函数返回一个整型值
void *p p为一个指针变量,基类型为void ,不指向具体的数据
五 结构体
1 结构体嵌套
Struct a{
Int b,c;
}
Struct d{
Int e,f;
Struct a g;
}
用表格表示如下
E | g | f | |
b | c | ||
六 枚举类型
实例 enum weekday(sum,mon,tue,wed,thu,fri,sat)
enum weekday a,b; a,b都是枚举变量,sum,mon都称为枚举元素或枚举常量
七 利用文件保存数据
1 数据文件的分类
数据文件可以分为ASCII文件和二进制文件,字符型数据只能以ASCII形式存储,数值型数据可以用ASCII形式存储在磁盘中,也可以用二进制形式存储。
例如: 10000,如果用ASCII码形式输出到磁盘,则占5个字节(如1在ASCII码中是48,转化为二进制占一个字节),而二进制文件输出只需要占2个字节就可以表示这个数。
2 文件的打开与关闭
用fopen(文件名,使用文件方式),返回值是指向文件的指针
fopen(“a1”,”r”);
fclose(文件指针);
3 向文件读写一个字符
Fgetc(fp),fputc(ch,fp)(把字符ch写到fp所指向的文件中)
4 向文件中读写一个字符串
fgets(str,n,fp) 从fp指向的文件读入一个长度为(n-1)的字符串,存放到字符数组str中,不成功返回null,成功返回地址str
fputs(ch,fp) 把ch字符串写到文件指针fp所指向的文件中,成功返回0,否则返回非0;