工控课堂

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

工控课堂 首页 工控文库 工控上位机 查看内容

工控编程,C++常用库函数汇总讲解

2019-3-30 12:27| 发布者: 198366809| 查看: 23| 评论: 6|原作者: 198366809

摘要: 我们学习了程序设计中的三种基本结构(顺序、分支、循环),用它们可以组成任何程序。但在应用中,还经常用到子程序结构。通常,在程序设计中,我们会发现一些程序段在程序的不同地方反复出现,此时可以将这些程序段 ...
我们学习了程序设计中的三种基本结构(顺序、分支、循环),用它们可以组成任何程序。但在应用中,还经常用到子程序结构。
通常,在程序设计中,我们会发现一些程序段在程序的不同地方反复出现,此时可以将这些程序段作为相对独立的整体,用一个标识符给它起一个名字,凡是程序中出现该程序段的地方,只要简单地写上标识符即可。这样的程序段,我们称之为子程序(函数)。下面介绍一下C++提供的各种标准函数。











C++常用库函数
1.缓冲区操作函数
1-1 函数名: memchr
函数原型: void *memchr(const void *buf, int c, sizet count);
参数: buf 缓冲区的指针; c 查找的字符; count 检查的字符个数。
所需头文件: <cstring>
功能:查找 buf 的前 count 个字节中 c 的第一次出现,当找到 c 或已检查完 count 个字节时停止。
返回值:如果成功,返回 buf 中 c 首次出现的位置的指针;否则返回 NULL
1-2 函数名: memcpy
函数原型: void *memcpy(void *dest, const void *src, sizet count);
参数: dest 目的缓冲区; src 源缓冲区; count 拷贝的字符个数。
所需头文件 <cstring>
功能:从 src 拷贝 count 个字节到 dest。如果源缓冲区和目的缓冲区重叠,这个函数不能保证正确拷贝;对于这种情况可使用 memmove 处理。
返回值:返回 dest 的值。
1-3 函数名: memicmp
函数原型: int memicmp(const void *buf1, const void *buf2, unsigned intcount);
参数: bufl 第一个缓冲区; buf2第二个缓冲区; count 字符个数。
所需头文件: <cstring>
功能:比较两个缓冲区 bufl 和 buf2的前 count 个字符,比较过程是大小写无关的。
返回值: bufl 和 buf2的前 count 个字节之间的关系:
<0: bufl 小于 buf2;=0: bufl 等于 buf2; >0: bufl 大于 bur2
1-4 函数名: memmove
函数原型: void *memmove(void *dest, const void *src, sizet count);
参数: dest 目的对象; src 源对象; count 拷贝的字符字节个数。
所需头文件; <cstring>
功能:从 src 拷贝 count 个字节到 dest。如果源区域与目的区域有重叠, memmove 也能确保正确拷贝。
返回值:返回 dest 的值。
1-5 函数名: memset
函数原型: void *memset(void *dest, int c, sizet count);
参数: dest 目的指针; c 设置的字符; count 字符个数。
所需头文件: <cstring>
功能:设置 dest 的前 count 个字节为字符 c。
返回值:返回 dest 的值。
1-6 函数名: swab
函数原型: void swab(char *src, char *dest, int n);
参数: src 需拷贝和交换的数据; dest 交换结果数据的存储位置; n 拷贝和交换的字节个数。
所需头文件: <cstdlib>
功能:从 src 拷贝 n 个字节,交换每对相邻的字节,并把结果存储在 dest 中。一般用于为转换到使用不同字节次序的机器上而准备二进制数据。
返回值:无

2.字符分类函数
2-1 函数名: isalnum
函数原型: int isalnum(int c);
所需头文件: <cctype>
功能:测试 c 是否字母或数字。
返回值:如果 c 在 A~Z、 a~z 或0~9的范围内,则返回一个非0值;否则返回0。
2-2 函数名: isalpha
函数原型: int isalpha(int c);
所需头文件: <cctype>
功能:测试 c 是否字母。
返回值:如果 c 在 A~Z 或 a~z 的范围内,则返回一个非0值;否则返回0。
2-3 函数名: isascll
函数原型: int isascll (int c);
所需头文件: <cctype>
功能:测试 c 是否 ASCII 字符。
返回值:如果 c 为一个0x00~0x7F 之间的 ASCII 字符,则返回一个非0值:否则返回0。
2-4 函数名: iscntrl
函数原型: int iscntrl(int c);
所需头文件: <cctype>
功能:测试 c 是否控制字符,
返回值:如果 c 是一个控制字符(0x00~0xlF 或0x7F),则返回一个非0值,否则返回0。
2-5 函数名: iscsym
函数原型: int iscsym (int c);
所需头文件: <cctype>
功能:测试 c 是否字母、下划线或数字。
返回值:如果 c 是一个字母、下划线或数字,则返回一个非0值;否则返回0。
2-6 函数名: iscsymf
函数原型: int iscsymf (int c);
所需头文件: <cctype>
功能:测试是否字母或下划线。
返回值:如果 c 是一个字母或下划线,则返回一个非0值;否则返回0。
2-7 函数名: isdigit
函数原型: int isdigit(int c);
所需头文件: <cctype>
功能:测试是否十进制数字。
返回值:如果 c 是一个十进制数字(0~9),则返回一个非0值;否则返回0。
2-8 函数名: isgraph
函数原型: int isgraph(int c);
所需头文件: <cctype>
功能:测试是否空格外的可打印字符。
返回值:如果 c 是一个非空格的其它可打印字符,则返回一个非0值;否则返回0。
2-9 函数名: islower
函数原型: int islower(int c);
所需头文件: <cctype>
功能:测试是否小写字母。
返回值:如果 c 是一个小写字母(a~z)
2-10 函数名: isprint
函数原型: int isprint(int c);
所需头文件: <cctype>
功能:测试是否可打印字符。
返回值:如果 c 是一个可打印字符包括空格字符(0x20~0x7E),则返回一个非0值;否则返回0。
2-11 函数名: ispunct
函数原型: int ispunct(int c);
所需头文件: <cctype>
功能:测试是否标点符号。
返回值:如果 c 是一个非空格字符并且是 isalnum 不为真的字符,则返回一个非0值;否则返回0。
2-12 函数名: isspace
函数原型: int isspace(int c);
所需头文件: <cctype>
功能:测试是否空白。
返回值:如果 c 是一个空白字符(0x09~0x0D 或0x20) 则返回一个非0值;否则返回0。
2-13 函数名: isupper
函数原型: int isupper(int c);
所需头文件: <cctype>
功能:测试是否大写字母。
返回值:如果 c 是一个大写字母,则返回一个非0值;否则返回0。
2-14 函数名: isxdigit
函数原型: int isxdigit(int c);
所需头文件: <cctype>
功能:测试是否十六进制数字。
返回值:如果 c 是一个十六进制数字(A~F, a~f 或0~9),则返回一个非0值;否则返回0。

3.数据转换函数
3-1 函数名: abs
函数原型: int abs(int n);
参数: n 整数值。
所需头文件: <cstdlib>
功能:求绝对值。
返回值:返回 n 的绝对值。
3-2 函数名: atof, atoi, atol
函数原型: double atof(const char *string);
int atoi(const char *string);
long atol(const char *xstring);
参数: string 要转换的字符串。
所需头文件: <cstdlib>
功能:将字符串转换成 double(atof)、 integer(atoi)或 long(ato1)型数据。
返回值:返回转换后的结果值,如果输入不能转换成对应类型的值,返回值为0.0(atof)或
0(atoi, atol)。溢出情况下返回值不确定。
3-3 函数名: ecvt
函数原型: char *ecvt (double value, int count, int dec, int *sign);
参数: value 被转换的数; count 存储的数字个数; dec 存储的小数点位置; sign 转换的数的符号。
所需头文件: <cstdlib>
功能:将 double 型浮点数转换成指定长度的字符串,
返回值:返回数字字符串的一个指针;没有错误返回
3-4 函数名: labs
函数原型: long labs(long n);
参数: n 长整数值。
所需头文件: <cstdlib>
功能:求 long 整数的绝对值。
返回值:返回 n 的绝对值;没有错误返回。
3-5 函数名: strtod
函数原型: double strtod(const char *nptr, char **endptr);
参数: nptr 要转换的以空字符结尾的字符串; endptr 停止扫描的字符的指针。
所需头文件: <cstdlib>
功能:将字符串 nptr 转换成 double 型数据,在遇到第一个不能作为数值识别的字符时停止,这可能是结尾的空字符。
返回值:返回转换后的结果。如果发生上溢,函数返回十/一 HUGEVAL, HUGEVAL 的符号与需转换的值符号相同。如果不能进行转换或出现下溢出,则返回0。
3-6 函数名: strtol
函数原型: long strtol(const char *nptr, char **endptr, int base);
参数: nptr 要转换的以空字符结尾的字符串; endptr 停止扫描的字符的指针;
base 使用的基数。
所需头文件: <cstdlib>
功能:将字符串 nptr 转换成 long 型数据。在遇到第一个不能作为数值识别的字符时停止,这可能是结尾的空字符,或者是第一个大于或等于 base 的数值字符。
返回值:返回转换后的结果。如果发生上溢,函数返回 LONGMAX 或 LONGMIN。如果不能执行转换,则返回0。
3-7 函数名: strtoul
函数原型: unsigned long strtoul(const char *nptr, char **endptr, int base);
参数: nptr 要转换的以空字符结尾的字符串; endptr 停止扫描的字符的指针; base 使用的基数。
所需头文件: <cstdlib>
功能:将字符串 nptr 转换成 unsignedlong 型数据。在读到字符串中第一个不能作为数值识别的字符时停止,这可能是结尾的空字符或者是大于或等于 base 的第一个数值字符。
返回值:返回转换后的结果。如果发生上溢,函数返回 ULONGMAX。如果不能执行转换,则返回0。
3-8 函数名: tolower
函数原型: int tolower(int c);
参数: c 要转换的字符。
所需头文件: <cstdlib>和<cctype>
功能:将字符转换为小写字母。
返回值:返回转换结果。
3-9 函数名: toupper
函数原型: int toupper(int c);
参数: c 要转换的字符。
所需头文件: <cstdlib>和<cctype>
功能:将字符转换为大写字母。
返回值:返回转换结果。

4.数学函数
4-1 函数名: abs
函数原型: int abs(int n) ;
参数 in 需要求绝对值的整数。
所需头文件: <cstdlib>或<cmath>
功能和返回值:返回 n 的绝对值;没有错误返回
4-2 函数名: acos
函数原型: double acos(double x) ;
参数: x 是-1到 l 之间的值。
所需头文件; <cmath>
功能和返回值:计算并返回范围在0到 π 弧度之间的 x 的反余弦值。
4-3 函数名: asin
函数原型: double asin(double x);
参数: x 是-l 到1之间的值。
所需头文件: <cmath>
功能和返回值:计算并返回范围在-π/2到 π/2弧度之间的 x 的反正弦值。
4-4 函数名: atan, atan2
函数原型: double atan(double x);
double atan2(double y, double x);
所需头文件: <cmath>
功能:计算 x(atan)或 y/x(atan2)的反正切值。
返回值: atan 返回 x 的反正切值, atan2返回 y/x 的反正切值。如果 x 为0,则 atan 返回0。
如果 atan2的两个参数都为0,该函数返回0。
4-5 函数名: atof
函数原型: double atof(const char ustring);
参数: string 需要转换的字符串。
所需头文件: <cmath>或<cstdlib>
功能和返回值:将字符串转换成 double 值并返回该值。如果 string 不能转换成 double 类型的值,返回值为0.0。
4-6 函数名: ceil
函数原型: double ceil(double x);
所需头文件: <cmath>
功能:对 x 向上取整,并以 double 型浮点数形式存储结果。
返回值:返回一个 double 型的大于或等于 x 的最小整数;没有错误返回。
4-7 函数名: cos, cosh
函数原型: double cos(double x);
参数: x 弧度值。
所需头文件: <cmath>
功能和返回值:计算并返回 x 的余弦值(cos)或双曲余弦值(cosh)。
4-8 函数名: difftime
函数原型: double difftime(timet timerl, timet timer0);
参数: timerl 终止时间; timerO 开始时间。
所需头文件: <ctime>
功能:计算两个指定时间值之间的差。
返回值:返回从 timer0到 timerl 之间经过的时间
4-9 函数名: div
函数原型: div_t div(int numer, int denom);
参数: numer 被除数; dehorn 除数。
所需头文件: <cstdlib>
功能:用 numer 除以 denom,计算商与余数。如果除数为0,程序输出一个错误消息并终止。
返回值:返回一个 div_t 类型的结构,它由商与余数组成。
4-10 函数名: exp
函数原型: double exp(double x);
所需头文件: <cmath>
功能和返回值:计算并返回 e 的 x 次幂。
函数名: fabs
函数原型: double fabs(double x);
所需头文件: <cmath>
功能和返回值:计算并返回浮点参数 x 的绝对值。
4-11 函数名: floor
函数原型: double floor(double x);
所需头文件: <cfloat>
功能:向下取整,并以 double 型浮点数形式存储结果。
返回值:返回一个 double 型的小于或等于 x 的最大整数;没有错误返回。
4-12 函数名: fmod
函数原型: double fmod(double x, double y);
所需头文件: <cmath>
功能和返回值:计算并返回 x/y 的余数,如果 y 值是0. 0,返回一个静止 NaN。
4-13 函数名: frexp
函数原型: double frexp(doublex, Int‘expptr);
参数: x 需要求出尾数和指数的浮点数; expptr 指向指数值的指针
所需头文件: <cmath>
功能:取得一个浮点数的尾数和指数。
返回值:返回尾数。如果 x 为0,尾数和指数都为0。
4-14 函数名: hypot
函数原型: double hypot (double x, double y);
参数:直角三角形的两个直角边长度。
所需头文件: <cmath>
功能和返回值:计算并返回直角三角形的斜边长度(x 与 y 的平方根),上溢出时返 INF(无穷大)。
4-15 函数名: 1abs
函数原型: long labs(1ong n)
所需头文件: <cstdlib>
功能和返回值:返回 long 型参数 n 的绝对值
4-16 函数名: ldexp
函数原型: double ldexp(double x, int exp);
参数: x 尾数; exp 指数。
所需头文件: <cmath>
功能和返回值:计算并返回变量x和2的指定乘方的乘积(x*2exp)。
4-17 函数名: ldiv
函数原型: ldiv_t ldiv(10ng Int numer, longlilt denom);
参数: numer 被除数; denom 除数。
所需头文件: <cstdlib>
功能:用 numer 除以 denom,计算商与余数。如果除数为0,程序输出一个错误消息并终止。
返回值: 返回一个 ldiv_t 类型的结构,它由商和余数组成,定义在 cstdlib 中。
4-18 函数名: log
函数原型: double log(double x);
所需头文件: <cmath>
功能和返回值:计算并返回 x 的自然对数。如果 x 是负数,返回值不确定。如果 x 为0,返回 INF(无穷大)。
4-19 函数名: logl0
函数原型: double logl0(double x);
所需头文件: <cmath>
功能和返回值:汁算并返回 x 的以10为底的对数。如果 x 是负数,返回值不确定。如果 X
为0,返回 INF(无穷大)。
4-20 函数名: logb
函数原型: double logb (double x);
所需头文件: <cfloat>
功能和返回值:返回双精度浮点参数 x 的无偏的指数值。
2-21 函数名: lrotl, lrotr
函数原型: unsigned long lrot (unsigned long value, int shift)
unsigned long lrotr (unsigned long value, int shift);
参数: value 需要移位的数值; shift 需要移动的位数。
所需头文件: <cstdlib>
功能:循环移动 value 值 shift 位。
返回值:返回循环移位后的值。
4-22 函数名: max
函数原型: type max (type a, type b);
参数: type 任何数值数据类型; a 和 b 是参与比较的两个数,必须是相同类型。
所需头文件: <cstdlib>
功能和返回值:比较 a 和 b 并返回其中较大者。
4-23 函数名: min
函数原型: type min (type a, type b);
参数: type 任何数值数据类型。 a 和 b 是参与比较的两个数,必须是相同类型。
所需头文件: <cstdlib>
功能和返回值:比较 a 和 b 并返回其中较小者。
4-24 函数名: modf
函数原型: double modf(double x, double *inptr);
参数: x 需要分解的数; lnptr 指向分解后整数部分的指针。
所需头文件: <cmath>
功能和返回值:将浮点值 x 分解成小数和整数部分,每个都与 x 具有同样的符号。返回 x
的带符号的小数部分,整数部分作为浮点值存储在 intptr 处。
4-25 函数名: nextafter
函数原型: double nextafter (double x, double y);
所需头文件: <cfloat>
功能和返回值:返回 x 与 y 之间,与 x 最邻近的可表示的浮点数。如果 x=y, nextafter 返回 x,没有异常触发。
4-26 函数名: pow
函数原型: double pow(double x, double y);
所需头文件: <cmath>
功能和返回值:计算并返回 x 的 y 次幂。
4-27 函数名: printf
函数原型: int printf(const char *format[, argument]…);
参数: format 格式控制字符串; argument 待输出的内容,任选参数。
所需头文件: <cstdio>
功能:格式化并输出一系列字符和数值到标准输出流 stdout。如果有参数 argument 跟随
format 字符串,该 format 字符串必须包含确定该参数输出格式的格式符。
返回值:返回输出的字符个数:如果出现错误,则返回一个负数。
4-28 函数名: rand
函数原型: int rand(void);
所需头文件: <cstdlib>
功能和返回值:返回一个 0 ~ RAND_MAX 的随机数
4- 29 函数名: scanf
函数原型: int scanf(const char *format[, argument)... );
参数: format 格式控制字符串; argument 可选参数,表示输入内容的存放地址。
所需头文件: <cstdio>
功能: scanf 函数从标准输人流 stdin 读数据并把所读数据写到 argument 指定的位置。每个argument 必须是对应于 format 中一个类型指示符的类型的变量的一个指针。
返回值:返回成功转换和赋值的域的个数。
4-30 函数名: sin, sinh
函数原型: double sin(double x);
double sinh(double x);
参数: x 弧度值。
所需头文件: <cmath>
功能和返回值: sin 返回 x 的正弦值。 sinh 返回 x 的双曲正弦值。
4-31 函数名: sqrt
函数原型: double sqrt(double x);
所需头文件: <cmath>
功能和返回值:计算并返回 x 的平方根。
4-32 函数名: srand
函数原型: void srand(unsigned int seed);
参数: seed 产生随机数的种子。
所需头文件: <cstdlib>
功能:为使 rand()产生一序列伪随机整数而设置起始点。使用1作为 seed 参数,可以重新
初始化 rand()。
4- 33 函数名: tan, tanh
函数原型: double tan(double x);
double tanh(double x);
参数: x 弧度值。
所需头文件: <cmath>
功能和返回值: tan 返回 x 的正切值。 tanh 返回 x 的双曲正切值。
5.输入和输出函数
5-1 函数名: fclose
函数原型: int fclose(FILE *stream);
参数: streamFILE 结构的指针。
所需头文件: <cstdio>
返回值:如果该流成功关闭, fclose 返回0。如果出错,则返回 EOF。
功能:关闭流。
5-2 函数名: ferror
函数原型: int ferror(FILE *stream);
参数: stream FILE 结构的指针。
所需头文件: <cstdio>
功能:测试与 stream 关联的文件上的读写错误。如果出现一个错误,该函数将设置该流的错误指示符并且保留到该流被关闭、重绕或者后面调用了 clearerr 函数。
返回值:如果 stream 上没有出现错误, {error 返回0;否则返回一个非0值。
5-3 函数名: fprintf
函数原型: int fprintf(FILE *stream, const char *format[, argument]... );
参数: stream FILE 结构的指针; format 格式控制字符串; argument 需要输出的内容。
所需头文件: <cstdio>
功能:格式化并输出一系列字符和数值到输出流 stream 中。每个参数 argument(如果存在)根据 format 中对应的格式规范转换和输出。 format 参量与 printf 中的该参量具有相同的语法和用途。
返回值:返回所写的字节数,当出现错误时函数返回一个负数。
5-4 函数名: freopen
函数原型: FILE *freopen(const char *path, const char *mode, FILE *stream);
参数; path 新文件的路径; mode 文件访问许可; stream FILE 结构的指针。
所需头文件: <cstdio>
功能:关闭当前与 stream 关联的文件,并将 stream 重新赋给由 path 指定的文件。
返回值:返回最新打开的文件的指针。如果出现错误,最初的文件被关闭并返回
NULL 指针值。
5-5 函数名: fscanf
函数原型: int fscanf(FILE *stream, const char *format[, argument]... );
参数: streamFILE 结构的指针; format 格式控制字符串。 format 控制对输入内容的格式转换,它与 scanf 中的 format 参量具有同样的格式和功能。每个 argument 必须是对应于 format中一个类型指示符的类型的指针,作为读人数据的存放地址,是可选参量。
所需头文件: <cstdio>
功能:从 stream 的当前位置读数据到 argument 值定的位置(如果有)。
返回值:返回成功转换和存储的域个

路过

雷人

握手

鲜花

鸡蛋

相关阅读

发表评论

最新评论

1617193978asd 2019-3-30 12:26
论坛有你更精彩!
lwj725 2019-3-30 12:38
真是难得给力的帖子啊。
chl1314 2019-3-30 12:48
论坛有你更精彩!
pc1981 2019-3-30 12:49
大家都不容易!
mgyid 2019-3-30 12:59
看到这帖子真是高兴!
Hz20160713 2019-4-1 22:17
绝对干货,楼主给力,支持了!!!

查看全部评论(6)

QQ|免责声明|本站介绍|工控课堂 ( 沪ICP备14007696号-3 )|网站地图

GMT+8, 2019-4-3 23:27 , Processed in 0.112707 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部