C 函数
函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。
您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。
函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。
C 标准库提供了大量的程序可以调用的内置函数。例如,函数 strcat() 用来连接两个字符串,函数 memcpy() 用来复制内存到另一个位置。
函数还有很多叫法,比如方法、子例程或程序,等等。
C语言函数库:
C语言的常用的标准头文件有 :
一.
函数原型 | 功能 |
---|---|
int iscntrl(int c) | 判断字符c是否为控制字符。 |
int isalnum(int c) | 判断字符c是否为字母或数字 |
int isalpha(int c) | 判断字符c是否为英文字母 |
int isascii(int c) | 判断字符c是否为ascii码 |
int isblank(int c) | 判断字符c是否为TAB或空格 |
int isdigit(int c) | 判断字符c是否为数字 |
int isgraph(int c) | 判断字符c是否为除空格外的可打印字符 |
int islower(int c) | 判断字符c是否为小写英文字母 |
int isprint(int c) | 判断字符c是否为可打印字符(含空格) |
int ispunct(int c) | 判断字符c是否为标点符号 |
int isspace(int c) | 判断字符c是否为空白符 |
int isupper(int c) | 判断字符c是否为大写英文字母 |
int isxdigit(int c) | 判断字符c是否为十六进制数字 |
int toascii(int c) | 将字符c转换为ascii码 |
int tolower(int c) | 将字符c转换为小写英文字母 |
int toupper(int c); | 将字符c转换为大写英文字母 |
二.
函数原型 | 功能 |
---|---|
float fabs(float x) | 求浮点数x的绝对值 |
int abs(int x) | 求整数x的绝对值 |
float acos(float x) | 求x(弧度表示)的反余弦值 |
float asin(float x) | 求x(弧度表示)的反正弦值 |
float atan(float x) | 求x(弧度表示)的反正切值 |
float atan2(float y, float x) | 求y/x(弧度表示)的反正切值 |
float ceil(float x) | 求不小于x的最小整数 |
float cos(float x) | 求x(弧度表示)的余弦值 |
float cosh(float x) | 求x的双曲余弦值 |
float exp(float x) | 求e的x次幂 |
float floor(float x) | 求不大于x的最大整数 |
float fmod(float x, float y) | 计算x/y的余数 |
float frexp(float x, int *exp) | 把浮点数x分解成尾数和指数 |
float ldexp(float x, int exp) | 返回x*2^exp的值 |
float modf(float num, float *i) | 将浮点数num分解成整数部分和小数部分 |
float hypot(float x, float y) | 对于给定的直角三角形的两个直角边,求其斜边的长度 |
float log(float x) | 计算x的自然对数 |
float log10(float x) | 计算x的常用对数 |
float pow(float x, float y) | 计算x的y次幂 |
float pow10(float x) | 计算10的x次幂 |
float sin(float x) | 计算x(弧度表示)的正弦值 |
float sinh(float x) | 计算x(弧度表示)的双曲正弦值 |
float sqrt(float x) | 计算x的平方根 |
float tan(float x); | 计算x(弧度表示)的正切值 |
float tanh(float x) | 求x的双曲正切值 |
三.
函数原型 | 功能 |
---|---|
int printf(char *format...) | 产生格式化输出的函数 |
int getchar(void) | 从键盘上读取一个键,并返回该键的键值 |
int putchar(char c) | 在屏幕上显示字符c |
FILE fopen(char filename, char *type) | 打开一个文件 |
FILE freopen(char filename, char type,FILE fp) | 打开一个文件,并将该文件关联到fp指定的流 |
int fflush(FILE *stream) | 清除一个流 |
int fclose(FILE *stream) | 关闭一个文件 |
int remove(char *filename) | 删除一个文件 |
int rename(char oldname, char newname) | 重命名文件 |
FILE *tmpfile(void) | 以二进制方式打开暂存文件 |
char tmpnam(char sptr) | 创建一个唯一的文件名 |
int setvbuf(FILE stream, char buf, int type, unsigned size) |把缓冲区与流相关
|int fprintf(FILE stream, char format[, argument,...]) |传送格式化输出到一个流中
|int scanf(char format[,argument,...]) |执行格式化输入
|int fscanf(FILE stream, char format[,argument...]) |从一个流中执行格式化输入
|int fgetc(FILE stream) |从流中读取字符
|char fgets(char string, int n, FILE stream) |从流中读取一字符串
|int fputc(int ch, FILE stream) |送一个字符到一个流中
|int fputs(char string, FILE stream) |送一个字符到一个流中
|int getc(FILE stream) |从流中取字符
|int getchar(void) |从 stdin 流中读字符
|char gets(char string) |从流中取一字符串
|int putchar(int ch) |在 stdout 上输出字符
|int puts(char string) |送一字符串到流中
|int ungetc(char c, FILE stream) |把一个字符退回到输入流中
|int fread(void ptr, int size, int nitems, FILE stream)| 从一个流中读数据
|int fwrite(void ptr, int size, int nitems, FILE stream) |写内容到流中 int fseek(FILE stream, long offset, int fromwhere) |重定位流上的文件指针
|long ftell(FILE stream) |返回当前文件指针
|int rewind(FILE stream) |将文件指针重新指向一个流的开头
|int fgetpos(FILE stream) |取得当前文件的句柄
|int fsetpos(FILE stream, const fpos_t pos) |定位流上的文件指针
|void clearerr(FILE stream) |复位错误标志
|int feof(FILE stream)| 检测流上的文件结束符
|int ferror(FILE stream) |检测流上的错误
|void perror(char *string) |系统错误信息
四.
函数原型 | 功能 |
---|---|
char *itoa(int i) | 把整数i转换成字符串 |
void exit(int retval) | 结束程序 |
double atof(const char *s) | 将字符串s转换为double类型 |
int atoi(const char *s) | 将字符串s转换为int类型 |
long atol(const char *s) | 将字符串s转换为long类型 |
double strtod (const chars,char *endp) | 将字符串s前缀转换为double型 |
long strtol(const chars,char *endp,int base) | 将字符串s前缀转换为long型 |
unsinged long strtol(const chars,char *endp,int base) | 将字符串s前缀转换为 unsinged long型 |
int rand(void) | 产生一个0~RAND_MAX之间的伪随机数 |
void srand(unsigned int seed) | 初始化随机数发生器 |
void *calloc(size_t nelem, size_t elsize) | 分配主存储器 |
void *malloc(unsigned size) | 内存分配函数 |
void realloc(void ptr, unsigned newsize) | 重新分配主存 |
void free(void *ptr) | 释放已分配的块 |
void abort(void) | 异常终止一个进程 |
void exit(int status) | 终止应用程序 |
int atexit(atexit_t func) | 注册终止函数 |
char getenv(char envvar) | 从环境中取字符串 |
void bsearch(const void key, const void base, size_t nelem, size_t width, int(fcmp)(const void , const *)) | 二分法搜索函数 |
void qsort(void base, int nelem, int width, int (fcmp)()) | 使用快速排序例程进行排序 |
int abs(int i) | 求整数的绝对值 |
long labs(long n) | 取长整型绝对值 |
div_t div(int number, int denom) | 将两个整数相除 , 返回商和余数 |
ldiv_t ldiv(long lnumer, long ldenom) | 两个长整型数相除 , 返回商和余数 |
五.
函数原型 | 功能 |
---|---|
clock_t clock(void) | 确定处理器时间函数 |
time_t time(time_t *tp) | 返回当前日历时间 |
double difftime(time_t time2, time_t time1) | 计算两个时刻之间的时间差 |
time_t mktime(struct tm *tp) | 将分段时间值转换为日历时间值 |
char asctime(const struct tm tblock) | 转换日期和时间为ASCII码 |
char ctime(const time_t time) | 把日期和时间转换为字符串 |
struct tm gmtime(const time_t timer) | 把日期和时间转换为格林尼治标准时间 |
struct tm localtime(const time_t timer) | 把日期和时间转变为结构 |
size_t strftime(char s,size_t smax,const char fmt, const struct tm *tp) | 根据 fmt 的格式 要求将 *tp中的日期与时间转换为指定格式 |