C语言编译器安装的时候还附带了很多标准函数库。当程序使用库中函数的时候,需要在程序开头声明程序调用的库。格式为:
#include<... .h>
常用头文件:
stdio.h 数据输入/输出 stdlib.h 不知道该属于什么类别的常用函数
String.h 和字符串有关的函数 math.h 各类数学函数
time.h 极少用但会用到的和时间有关的函数
如果让我给一个建议的话,就是在某个程序里把所有能想到的头文件都写上,以后每次用到就复制粘贴。
常用的输入输出函数:
输入:
getchar() 读入一个字符 putchar() 输出一个字符
gets() 读入一行字符 puts() 输出一行
由于指针没有提到过,详细描述下getchar()和gets()。
假如在屏幕上输入:tuilixiehui。
程序为:
string ch;
ch=getchar(); 那么ch的值为t。
如果程序为:
ch=gets(); 那么ch的值为tuilixiehui。
scanf()中常用的数据类型说明符:
%d 有符号十进制整数 %o 无符号八进制整数
%u 无符号十进制整数 %x 无符号十六进制整数
%f 有符号浮点数(float) %lf 有符号浮点数(doubt)
%s 字符串
printf()中常用的数据类型说明符:
%c 单个字符 %d 有符号十进制整数
%o 无符号八进制整数 %u 无符号十进制整数
%x 无符号十六进制整数 %s 字符串
%e 有符号浮点数的科学表示法 %f 有符号浮点数的常规表示法
%g 有符号浮点数,按照f或e格式输出
printf()还可以规定数字的宽度,小数的位数:
printf(“%5.2f”,a); 这表示a的长度为5个字符,保留两位小数。如果a本身数字部分加上小数点不够五个字符,会补上前导空格。
其他常用格式标志:
-:数据在字段宽度内左对齐 +:再有符号的数据类型前加符号
0:数据在字段宽度内加前导0
#:对类型符o、x、X,加前缀0、0x、0X。对类型符e、E、f、g、G强制输出小数点。
字符类型判断函数:
在C语言编译器中,每个可输入的字符都对应一个编号(汉字和全角符号除外),称为ASCII编码。相同“类型”,比如数字,小写字母,大写字母的ASCII码是连续的。利用这一点我们可以判断一个字符所属的类型。比如一个判断字符是否属于数字的函数可以这样定义:
bool isnumber(char a)
{
if (a>=’0’ && a<=’9’) return 1;
return 0;
}
之前说过,字符之间进行比较的时候,比较的是二者的ASCII码。
同理可以设计函数判断一个字符是不是大小写字母。
字符串处理常用函数:
strcat(s1,s2) 把s2连接到s1后 strcmp(s1,s2) 比较s1和s2
srncat(s1,s2,n) 把s2的前n个字符连接到s1后 strncmp(s1,s2,n) 比较s1和s2的前n字符
strcpy(s1,s2) 将s2复制到s1中 strchr(s,c) 在s中查找c第一次出现的位置
strncpy(s1,s2,n) 将s2的前n位复制到s1中 strrchr(s,c) 在s中查找c最后一次出现的位置
strlen(s) 返回字符串的长度 strstr(s1,s2) 查找s1中s2首次出现的位置
其他常用函数(n为整型,x为浮点型):
abs(n) 绝对值 rand() 生成伪随机数
atof(s) 把字符串转换为double类型的数 srand(s) 设置随机数种子
atoi(s) 把字符串转换为int类型的数 exit() 终止程序执行
sqrt(x) x的平方根 asin(x) 反正弦
sin(x) acos(x)
cos(x) log(x) x的自然对数
tan(x) log10(x) x的常用对数
atan(x) exp(x) e^x
atan2(x,y) fabs(x) x的绝对值