C语言常用头文件

stdio.hstandard input & output

标准输入输出

stdlib.hstandard library

标准库头文件。

里面定义了五种类型、一些宏和通用工具函数。类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t; 宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等; 常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。

string.h

借鉴自C 标准库 - <string.h>

头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。

  1. 库变量类型
    size_t
    这是无符号整数类型,它是 sizeof 关键字的结果。

  2. 库宏
    NULL
    这个宏是一个空指针常量的值。

  3. 库函数

  • strcat()函数
    *原型:char *strcat(char *dest, const char src)
    作用:把src所指向的字符串追加到dest 所指向的字符串的结尾。
  • strcmp()函数
    *原型:int strcmp(const char *str1, const char str2)
    作用:把 str1 所指向的字符串和 str2 所指向的字符串进行比较。
  • strcpy()函数
    *原型:char *strcpy(char *dest, const char src)
    作用:把 src 所指向的字符串复制到 dest。
  • strlen()函数
    *原型:size_t strlen(const char str)
    作用:计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。
  • memchr()函数
    *原型:void *memchr(const void str, int c, size_t n)
    作用:在参数 str 所指向的字符串的前 n 个字节中搜索第一次出现字符 c(一个无符号字符)的位置。
  • memcmp()函数
    *原型:int memcmp(const void *str1, const void str2, size_t n)
    作用:把 str1 和 str2 的前 n 个字节进行比较。
  • memcpy()函数
    *原型:void *memcpy(void *dest, const void src, size_t n)
    作用:从 src 复制 n 个字符到 dest。
  • memmove()函数
    *原型:void *memmove(void *dest, const void src, size_t n)
    作用:另一个用于从 src 复制 n 个字符到 dest 的函数。
  • memset()函数
    *原型:void *memset(void str, int c, size_t n)
    作用:复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。
  • strncat()函数
    *原型:char *strncat(char *dest, const char src, size_t n)
    作用:把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。
  • strchr()函数
    *原型:char *strchr(const char str, int c)
    作用:在参数 str 所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置。
  • strncmp()函数
    *原型:int strncmp(const char *str1, const char str2, size_t n)
    作用:把 str1 和 str2 进行比较,最多比较前 n 个字节。
  • strcoll()函数
    *原型:int strcoll(const char *str1, const char str2)
    作用:把 str1 和 str2 进行比较,结果取决于 LC_COLLATE 的位置设置。
  • strncpy()函数
    *原型:char *strncpy(char *dest, const char src, size_t n)
    作用:把 src 所指向的字符串复制到 dest,最多复制 n 个字符。
  • strcspn()函数
    *原型:size_t strcspn(const char str1, const char str2)
    作用:检索字符串 str1 开头连续有几个字符都不含字符串 str2 中的字符。
  • strerror()函数
    *原型:char strerror(int errnum)
    作用:从内部数组中搜索错误号errnum,并返回一个指向错误消息字符串的指针。
  • strpbrk()函数
    *原型:char *strpbrk(const char *str1, const char str2)
    作用:检索字符串 str1 中第一个匹配字符串 str2 中字符的字符,不包含空结束字符。也就是说,依次检验字符串 str1 中的字符,当被检验字符在字符串 str2 中也包含时,则停止检验,并返回该字符位置。
  • strrchr()函数
    *原型:char *strrchr(const char str, int c)
    作用:在参数 str 所指向的字符串中搜索最后一次出现字符 c(一个无符号字符)的位置。
  • strspn()函数
    *原型:size_t strspn(const char *str1, const char str2)
    作用:检索字符串 str1 中第一个不在字符串 str2 中出现的字符下标。
  • strstr()函数
    *原型: char *strstr(const char *haystack, const char needle)
    作用:在字符串 haystack 中查找第一次出现字符串 needle(不包含空结束字符)的位置。
  • strtok()函数
    *原型: char *strtok(char *str, const char delim)
    作用:分解字符串 str 为一组字符串,delim 为分隔符。
  • strxfrm()函数
    *原型:size_t strxfrm(char *dest, const char src, size_t n)
    作用:根据程序当前的区域选项中的 LC_COLLATE 来转换字符串 src 的前 n 个字符,并把它们放置在字符串 dest 中。

math.h

头文件中声明了常用的一些数学运算

  1. 三角函数
    double sin(double);正弦
    double cos(double);余弦
    double tan(double);正切

  2. 反三角函数
    double asin (double); 结果介于[-PI/2,PI/2]
    double acos (double); 结果介于[0,PI]
    double atan (double); 反正切(主值),结果介于[-PI/2,PI/2]
    double atan2 (double,double); 反正切(整圆值),结果介于[-PI,PI]

  3. 双曲三角函数
    double sinh (double);
    double cosh (double);
    double tanh (double);

  4. 指数与对数
    double frexp(double value,int *exp);这是一个将value值拆分成小数部分f和(以2为底的)指数部分exp,并返回小数部分f,即f·2^exp。其中f取值在0.5~1.0范围或者0。
    double ldexp(double x,int exp);这个函数刚好跟上面那个frexp函数功能相反,它的返回值是x*2^exp
    double modf(double value,double *iptr);拆分value值,返回它的小数部分,iptr指向整数部分。
    double log (double); 以e为底的对数
    double log10 (double);以10为底的对数
    double pow(double x,double y);计算x的y次幂
    float powf(float x,float y); 功能与pow一致,只是输入与输出皆为单精度浮点数
    double exp (double);求取自然数e的幂
    double sqrt (double);开平方根

  5. 取整
    double ceil (double); 取上整,返回不比x小的最小整数
    double floor (double); 取下整,返回不比x大的最大整数,即 高斯函数[x]

  6. 绝对值
    int abs(int i); 求整型的绝对值
    double fabs (double);求实型的绝对值
    double cabs(struct complex znum);求复数的绝对值

  7. 标准化浮点数
    double frexp (double f,int *p); 标准化浮点数,f = x * 2^p,已知f求x,p (x介于[0.5,1])
    double ldexp (double x,int p); 与frexp相反,已知x,p求f

  8. 取整与取余
    double modf (double,double*); 将参数的整数部分通过指针回传,返回小数部分
    double fmod (double,double); 返回两参数相除的余数

  9. 其他
    double hypot(double x,double y);已知直角三角形两个直角边长度,求斜边长度
    double ldexp(double x,int exponent);计算x*(2的exponent次幂)
    double poly(double x,int degree,double coeffs []);计算多项式
    int matherr(struct exception *e);数学错误计算处理程序

source: 《C & C++ Code Capsules》

assert.h

头文件提供了一个名为 assert 的宏

void assert(int expression)
这实际上是一个宏,不是一个函数,可用于在 C 程序中添加诊断。它可用于验证程序做出的假设,并在假设为假时输出诊断消息。

limits.h

转载自C 标准库 - <limits.h>

头文件决定了各种变量类型的各种属性。定义在该头文件中的宏限制了各种变量类型(比如 char、int 和 long)的值。
这些限制指定了变量不能存储任何超出这些限制的值,例如一个无符号可以存储的最大值是 255。

库宏

描述
CHAR_BIT8定义一个字节的比特数。
SCHAR_MIN-128定义一个有符号字符的最小值。
SCHAR_MAX127定义一个有符号字符的最大值。
UCHAR_MAX255定义一个无符号字符的最大值。
CHAR_MIN0定义类型 char 的最小值,如果 char 表示负值,则它的值等于 SCHAR_MIN,否则等于 0。
CHAR_MAX127定义类型 char 的最大值,如果 char 表示负值,则它的值等于 SCHAR_MAX,否则等于 UCHAR_MAX。
MB_LEN_MAX1定义多字节字符中的最大字节数。
SHRT_MIN-32768定义一个短整型的最小值。
SHRT_MAX+32767定义一个短整型的最大值。
USHRT_MAX65535定义一个无符号短整型的最大值。
INT_MIN-2147483648定义一个整型的最小值。
INT_MAX2147483647定义一个整型的最大值。
UINT_MAX4294967296定义一个无符号整型的最大值。
LONG_MIN-9223372036854775808定义一个长整型的最小值。
LONG_MAX9223372036854775807定义一个长整型的最大值。
ULONG_MAX1.8446744e+19定义一个无符号长整型的最大值。

实例

#include <stdio.h>
#include <limits.h>

int main()
{

   printf("The number of bits in a byte %d\n", CHAR_BIT);

   printf("The minimum value of SIGNED CHAR = %d\n", SCHAR_MIN);
   printf("The maximum value of SIGNED CHAR = %d\n", SCHAR_MAX);
   printf("The maximum value of UNSIGNED CHAR = %d\n", UCHAR_MAX);

   printf("The minimum value of SHORT INT = %d\n", SHRT_MIN);
   printf("The maximum value of SHORT INT = %d\n", SHRT_MAX);

   printf("The minimum value of INT = %d\n", INT_MIN);
   printf("The maximum value of INT = %d\n", INT_MAX);

   printf("The minimum value of CHAR = %d\n", CHAR_MIN);
   printf("The maximum value of CHAR = %d\n", CHAR_MAX);

   printf("The minimum value of LONG = %ld\n", LONG_MIN);
   printf("The maximum value of LONG = %ld\n", LONG_MAX);
 
   return(0);
}

运行结果

在这里插入图片描述

ctype.h

借鉴自C标准库<ctype.h>

定义了一批C语言字符分类函数(C character classification functions),用于测试字符是否属于特定的字符类别,如字母字符、控制字符等等。既支持单字节字符,也支持宽字符。

库函数

  • int isalnum(int c)
    该函数检查所传的字符是否是字母和数字。
  • int isalpha(int c)
    该函数检查所传的字符是否是字母。
  • int iscntrl(int c)
    该函数检查所传的字符是否是控制字符。
  • int isdigit(int c)
    该函数检查所传的字符是否是十进制数字。
  • int isgraph(int c)
    该函数检查所传的字符是否有图形表示法。
  • int islower(int c)
    该函数检查所传的字符是否是小写字母。
  • int isprint(int c)
    该函数检查所传的字符是否是可打印的。
  • int ispunct(int c)
    该函数检查所传的字符是否是标点符号字符。
  • int isspace(int c)
    该函数检查所传的字符是否是空白字符。
  • int isupper(int c)
    该函数检查所传的字符是否是大写字母。
  • int isxdigit(int c)
    该函数检查所传的字符是否是十六进制数字。
  • int tolower(int c)
    该函数把大写字母转换为小写字母。
  • int toupper(int c)
    该函数把小写字母转换为大写字母。

<time.h>

转载自C 标准库 - <time.h>

头文件定义了四个变量类型、两个宏和各种操作日期和时间的函数。

库变量

  • size_t
    是无符号整数类型,它是 sizeof 关键字的结果。
  • clock_t
    这是一个适合存储处理器时间的类型。
  • time_t is
    这是一个适合存储日历时间类型。
  • struct tm
    这是一个用来保存时间和日期的结构。
    tm 结构的定义如下:
struct tm {
   int tm_sec;         /* 秒,范围从 0 到 59        */
   int tm_min;         /* 分,范围从 0 到 59        */
   int tm_hour;        /* 小时,范围从 0 到 23        */
   int tm_mday;        /* 一月中的第几天,范围从 1 到 31    */
   int tm_mon;         /* 月,范围从 0 到 11        */
   int tm_year;        /* 自 1900 年起的年数        */
   int tm_wday;        /* 一周中的第几天,范围从 0 到 6    */
   int tm_yday;        /* 一年中的第几天,范围从 0 到 365    */
   int tm_isdst;       /* 夏令时                */
};

库宏

  • NULL
    这个宏是一个空指针常量的值。
  • CLOCKS_PER_SEC
    这个宏表示每秒的处理器时钟个数。

库函数

  • char *asctime(const struct tm *timeptr)
    返回一个指向字符串的指针,它代表了结构 timeptr 的日期和时间。
  • clock_t clock(void)
    返回程序执行起(一般为程序的开头),处理器时钟所使用的时间。
  • char *ctime(const time_t *timer)
    返回一个表示当地时间的字符串,当地时间是基于参数 timer。
  • double difftime(time_t time1, time_t time2)
    返回 time1 和 time2 之间相差的秒数 (time1-time2)。
  • struct tm *gmtime(const time_t *timer)
    timer 的值被分解为 tm 结构,并用协调世界时(UTC)也被称为格林尼治标准时间(GMT)表示。
  • struct tm *localtime(const time_t *timer)
    timer 的值被分解为 tm 结构,并用本地时区表示。
  • time_t mktime(struct tm *timeptr)
    把 timeptr 所指向的结构转换为一个依据本地时区的 time_t 值。
  • size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)
    根据 format 中定义的格式化规则,格式化结构 timeptr 表示的时间,并把它存储在 str 中。
  • time_t time(time_t *timer)
    计算当前日历时间,并把它编码成 time_t 格式。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值