C语言函数大全:从数学计算到字符串处理
C语言函数大全:从数学计算到字符串处理
C语言是一种广泛使用的编程语言,其函数库提供了丰富的功能,涵盖了数学计算、字符处理、输入输出等多个方面。本文将详细介绍C语言中的各种函数,包括它们的用途和使用方法,帮助读者更好地理解和掌握C语言编程。
C语言中全部可用的数学函数有哪些?
int abs(int i);
求整数的绝对值。long labs(long n);
求长整型数的绝对值。double fabs(double x);
求实数的绝对值。double floor(double x);
求不大于x的最大整数,它相当于数学函数[x]。double ceil(double x);
求不小于x的最小整数。double sqrt(double x);
求x的平方根。double log10(double x);
求x的常用对数。double log(double x);
求x的自然对数。double exp(double x);
求欧拉常数e的x次方。double pow10(int p);
求10的p次方。double pow(double x, double y);
求x的y次方。double sin(double x);
正弦函数。double cos(double x);
余弦函数。double tan(double x);
正切函数。double asin(double x);
反正弦函数。double acos(double x);
反余弦函数。double atan(double x);
反正切函数。double atan2(double x);
反正切函数2。
C语言中有没有求绝对值的函数啊?谢谢!
C语言中求绝对值的函数有两个:abs()和fabs()。
- abs() 是用来求整型表达式的绝对值,比如:abs(x) 就是求整型变量x的绝对值。
- fabs() 是用来求浮点型表达式的绝对值,比如:abs(x) 就是求浮点型变量(float型或double型)x的绝对值。
根据你的数据是int,long,还是double型,要用不同的函数
#include math.h
iy = abs( ix ); //int型
ly = labs( lx ); //long型
dy = fabs( dx ); //double型
扩展资料:
C语言其他常用函数:
- atof:将str指向的字符串转换为一个double型的值,返回双精度计算结果。
- atoi:将str指向的字符串转换为一个int型的值,返回转换结果。
- exit:中止程序运行。将status的值返回调用的过程。
- labs:计算long型整数num的绝对值,返回计算结果。
- random:产生0到num之间的随机数,返回一个随机(整)数。
函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。
您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。
函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。
C 标准库提供了大量的程序可以调用的内置函数。例如,函数 strcat() 用来连接两个字符串,函数 memcpy() 用来复制内存到另一个位置。
函数还有很多叫法,比如方法、子例程或程序,等等。
定义函数
C 语言中的函数定义的一般形式如下:
return_type function_name( parameter list )
{
body of the function
}
参考资料来源:百度百科-C语言函数
C语言中的一些特殊函数
C语言里没有fmax()这个函数,它不能求出两个数中最大值,除非你自己定义这个函数。
如下:
int
fmax(int
a
,int
b)
{
return
ab?a:b;
}
函数power()是C语言里固有的库函数,可以直接使用。它主要用来求某个数的n次方。
如power(x,3)实际上就是求xxx.用该函数时前面得加math.h
C语言中各种函数的具体作用,要详细点的
字符处理函数
本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换
头文件 ctype.h
函数列表
函数类别 | 函数用途 | 详细说明 |
---|---|---|
字符测试 | 是否字母和数字 | isalnum |
是否字母 | isalpha | |
是否控制字符 | iscntrl | |
是否数字 | isdigit | |
是否可显示字符(除空格外) | isgraph | |
是否可显示字符(包括空格) | isprint | |
是否既不是空格,又不是字母和数字的可显示字符 | ispunct | |
是否空格 | isspace | |
是否大写字母 | isupper | |
是否16进制数字(0-9,A-F)字符 | isxdigit | |
字符大小写转换函数 | 转换为大写字母 | toupper |
转换为小写字母 | tolower |
地区化
本类别的函数用于处理不同国家的语言差异。
头文件 local.h
函数列表
函数类别 | 函数用途 | 详细说明 |
---|---|---|
地区控制 | 地区设置 | setlocale |
数字格式约定查询 | 国家的货币、日期、时间等的格式转换 | localeconv |
数学函数
本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51)
头文件 math.h
函数列表
函数类别 | 函数用途 | 详细说明 |
---|---|---|
错误条件处理 | 定义域错误(函数的输入参数值不在规定的范围内) | |
值域错误(函数的返回值不在规定的范围内) | ||
三角函数 | 反余弦 | acos |
反正弦 | asin | |
反正切 | atan | |
反正切2 | atan2 | |
余弦 | cos | |
正弦 | sin | |
正切 | tan | |
双曲函数 | 双曲余弦 | cosh |
双曲正弦 | sinh | |
双曲正切 | tanh | |
指数和对数 | 指数函数 | exp |
指数分解函数 | frexp | |
乘积指数函数 | fdexp | |
自然对数 | log | |
以10为底的对数 | log10 | |
浮点数分解函数 | modf | |
幂函数 | 幂函数 | pow |
平方根函数 | sqrt | |
整数截断,绝对值和求余数函数 | 求下限接近整数 | ceil |
绝对值 | fabs | |
求上限接近整数 | floor | |
求余数 | fmod |
本分类函数用于实现在不同底函数之间直接跳转代码。 头文件 setjmp.h io.h
函数列表
函数类别 | 函数用途 | 详细说明 |
---|---|---|
保存调用环境 | setjmp | |
恢复调用环境 | longjmp |
信号处理
该分类函数用于处理那些在程序执行过程中发生例外的情况。
头文件 signal.h
函数列表
函数类别 | 函数用途 | 详细说明 |
---|---|---|
指定信号处理函数 | signal | |
发送信号 | raise |
可变参数处理
本类函数用于实现诸如printf,scanf等参数数量可变底函数。
头文件 stdarg.h
函数列表
函数类别 | 函数用途 | 详细说明 |
---|---|---|
可变参数访问宏 | 可变参数开始宏 | va_start |
可变参数结束宏 | va_end | |
可变参数访问宏 | ||
访问下一个可变参数宏 | va_arg |
输入输出函数
该分类用于处理包括文件、控制台等各种输入输出设备,各种函数以“流”的方式实现
头文件 stdio.h
函数列表
函数类别 | 函数用途 | 详细说明 |
---|---|---|
文件操作 | 删除文件 | remove |
修改文件名称 | rename | |
生成临时文件名称 | tmpfile | |
得到临时文件路径 | tmpnam | |
文件访问 | 关闭文件 | fclose |
刷新缓冲区 | fflush | |
打开文件 | fopen | |
将已存在的流指针和新文件连接 | freopen | |
设置磁盘缓冲区 | setbuf | |
设置磁盘缓冲区 | setvbuf | |
格式化输入与输出函数 | 格式输出 | fprintf |
格式输入 | fscanf | |
格式输出(控制台) | printf | |
格式输入(控制台) | scanf | |
格式输出到缓冲区 | sprintf | |
从缓冲区中按格式输入 | sscanf | |
格式化输出 | vfprintf | |
格式化输出 | vprintf | |
格式化输出 | vsprintf | |
字符输入输出函数 | 输入一个字符 | fgetc |
字符串输入 | fgets | |
字符输出 | fputc | |
字符串输出 | fputs | |
字符输入(控制台) | getc | |
字符输入(控制台) | getchar | |
字符串输入(控制台) | gets | |
字符输出(控制台) | putc | |
字符输出(控制台) | putchar | |
字符串输出(控制台) | puts | |
字符输出到流的头部 | ungetc | |
直接输入输出 | 直接流读操作 | fread |
直接流写操作 | fwrite | |
文件定位函数 | 得到文件位置 | fgetpos |
文件位置移动 | fseek | |
文件位置设置 | fsetpos | |
得到文件位置 | ftell | |
文件位置复零位 | remind | |
错误处理函数 | 错误清除 | clearerr |
文件结尾判断 | feof | |
文件错误检测 | ferror | |
得到错误提示字符串 | perror | |
实用工具函数 | 实用工具函数 | |
头文件 stdlib.h | ||
函数列表 | ||
函数类别 | 函数用途 | 详细说明 |
字符串转换函数 | 字符串转换为整数 | atoi |
字符串转换为长整数 | atol | |
字符串转换为浮点数 | strtod | |
字符串转换为长整数 | strtol | |
字符串转换为无符号长整型 | strtoul | |
伪随机序列产生函数 | 产生随机数 | rand |
设置随机函数的起动数值 | srand | |
存储管理函数 | 分配存储器 | calloc |
释放存储器 | free | |
存储器分配 | malloc | |
重新分配存储器 | realloc | |
环境通信 | 中止程序 | abort |
退出程序执行,并清除环境变量 | atexit | |
退出程序执行 | exit | |
读取环境参数 | getenv | |
程序挂起,临时执行一个其他程序 | system | |
搜索和排序工具 | 二分查找(数据必须已排序) | bsearch |
快速排序 | qsort | |
整数运算函数 | 求绝对值 | abs |
div | ||
得到除法运算底商和余数 | ||
求长整形底绝对值 | labs | |
求长整形除法的商和余数 | ldiv | |
多字节字符函数 | 得到多字节字符的字节数 | mblen |
得到多字节字符的字节数 | mbtowc | |
多字节字符转换 | wctomb | |
多字节字符的字符串操作 | ||
将多字节串转换为整数数组 | mbstowcs | |
将多字节串转换为字符数组 | mcstowbs |
字符串处理
本分类的函数用于对字符串进行合并、比较等操作
头文件 string.h
函数列表
函数类别 | 函数用途 | 详细说明 |
---|---|---|
字符串拷贝 | 块拷贝(目的和源存储区不可重叠) | memcpy |
块拷贝(目的和源存储区可重叠) | memmove | |
串拷贝 | strcpy | |
按长度的串拷贝 | strncpy | |
字符串连接函数 | 串连接 | strcat |
按长度连接字符串 | strncat | |
字符串比较函数 | 块比较 | memcmp |
字符串比较 | strcmp | |
字符串比较(用于非英文字符) | strcoll | |
按长度对字符串比较 | strncmp | |
字符串转换 | strxfrm | |
字符与字符串查找 | 字符查找 | memchr |
字符查找 | strchr | |
字符串查找 | strcspn | |
字符串查找 | strpbrk | |
字符串查找 | strspn | |
字符串查找 | strstr | |
字符串分解 | strtok | |
杂类函数 | 字符串设置 | memset |
错误字符串映射 | strerror | |
求字符串长度 | strlen |
日期和时间函数
本类别给出时间和日期处理函数
头文件 time.h
函数列表
函数类别 | 函数用途 | 详细说明 |
---|---|---|
时间操作函数 | 得到处理器时间 | clock |
得到时间差 | difftime | |
设置时间 | mktime | |
得到时间 | time | |
时间转换函数 | 得到以ASCII码表示的时间 | asctime |
得到字符串表示的时间 | ctime | |
得到指定格式的时间 | strftime |
函数库未来的发展方向
本部分用于说明各类别函数库在将来如何发展。
序号 | 库类别 | 头文件 | 详细说明 |
---|---|---|---|
1 | 错误处理 | errno.h | |
2 | 字符处理 | ctype.h | |
3 | 地区化 | local.h | |
4 | 数学函数 | math.h | |
5 | 信号处理 | signal.h | |
6 | 输入输出 | stdio.h | |
7 | 实用工具程序 | stdlib.h | |
8 | 字符串处理 | string.h |
本文原文来自cdweb.net