标准库
标准头文件:
<assert.h> <float.h> <math.h> <stdarg.h> <stdlib.h>
<ctype.h> <limits.h> <setjmp.h> <stddef.h> <string.h>
<errno.h> <locale.h> <signal.h> <stdio.h> <time.h>
<string.h>{字符串函数
typedef char* s,t; typedef const char* cs,ct;
char *strcpy(s,ct); 拷贝
char *strncpy(s,ct,n);
char *strcat(s,ct); 连接
char *strncat(s,ct,n);
int strcmp(cs,ct); 比较
int strncmp(cs,ct,n);
char *strchr(cs,c); 放回c字符在cs中第一次出现的位置指针
char *strrchr(cs,c); 放回c字符在cs中最后出现的位置指针
size_t strspn(cs,ct); 通过c字符放回cs前缀
size_t strcspn(cs,ct);
char *strpbrk(cs,ct);
放回一个指向字符串ct中的任意字符第一次在cs中的位置指针
char *strstr(cs,ct); 放回ct第一次出现在cs中的位置
size_t strlen(cs);
char *strerror(n); 放回一个指向与错误编号n对应的错误信息字符串的指针
char *strtok(s,ct); 用ct字符切割字符串
void *memcpy(s,ct,n); 拷贝内存
void *memmove(s,ct,n);
移动内存,与memcpy相似,不同在于memove内存空间重叠时能正确执行
int memcmp(cs,ct,n); 比较内存
void *memchr(cs,c,n); 放回c在cs的前n个字符中第一次出现的位置,
void *memset(s,c,n); 设置内存
}
<math.h>{数学函数
typedef double x,y; typedef int n; 函数返回值均为double类型
sin(x);
cos(x);
tan(x);
asin(x); sin-1(x)
acos(x); cos-1(x)
atan(x); tan-1(x)
atan2(y,x); tan-1(y/x)
sinh(x); x的双曲正弦值
cosh(x); x的双曲余弦值
tanh(x); x的双曲正切值
exp(x); e的x次方
log(x); ln(x),x>0
log10(x); log10(x),x>0
pow(x,y); x的y次方
sqrt(x); x的平方根,x>=0
ceil(x); 不小于x的最小整型数,其中x的类型为double
floor(x); 不大于x的最大整型数,其中x的类型为double
fabs(x); x的绝对值
ldexp(x,n); x*(2的n次方)
frexp(x, int *ip);
modf(x, double *ip);
把x分成整数和小数两个部分,整数保存在ip函数放回小数部分
fmod(x,y); 求浮点余数
}
<stdlib.h>{实用函数
double atof(const char *s); 字符串转换为double类型。
int atoi(const char *s); 字符串转换为int类型。
long atol(const char *s); 字符串转换为long类型。
double strtod(const char *s, char **endp);
字符串转换为double类型,跳过前面的空格,endp指向s的后缀
long strtol(const char *s, char **endp, int base);
字符串转换为long类型,跳过前面的空格,endp指向s的后缀,base表示进制。
unsigned long strtoul(const char *s, char **endp, int base);
字符串转换为unsigned long类型。
int rand(void); 生成一个伪随机数。
void srand(unsigned int seed); 设置伪随机数的种子。
void *calloc(size_t nobj, size_t size);
void *malloc(size_t size);
colloc与malloc类似,但是主要的区别是存储在已分配的内存空间中的值默认为0,使用malloc时,已分配的内存中可以是任意的值.
void *realloc(void *p, size_t size); 重新给p指向的内存空间分配内存
void free(void *p); 释放内存,p=NULL时不会出错。重释放会导致程序崩溃
void abort(void);
void exit(int status); 使程序正常结束,清空缓冲并且会调用atexit绑定的函数
int atexit(void (*fcn)(void)); 程序结束执行fcn函数,成功返回0
int system(const char *s);
char *getenv(const char *name); 获得环境变量
void *bsearch(const void *key, const void *base,size_t n, size_t size,
int (*cmp)(const void *keyval, const void *datum));
void qsort(void *base, size_t n, size_t size,
int (*cmp)(const void *, const void *));
将数组进行升序排序
int abs(int n); 求绝对值
long labs(long n); 求绝对值
div_t div(int num, int denom); 求num/denom的商和余数
ldiv_t ldiv(long num, long denom);
}
<assert.h>{断言,它是一个宏
void assert(int expression); 该宏只在debug版的编译器中起作用。
如果expression为0时,该宏在stderr中打印错误信息,并结束程序。
}
<stdarg.h>{可变参数表,不知道干嘛的
va_start(va_list ap, lastarg);
type va_arg(va_list ap, type);
void va_end(va_list ap);
}
<setjmp.h>{非局部跳转
int setjmp(jmp_buf env);
}
<signal.h>{信号
void (*signal(int sig, void (*handler)(int)))(int);绑定信号处理函数。
int raise(int sig); 向程序发送信号sig,成功放回0
有效信号:
SIGABRT
SIGFPE
SIGILL
SIGINT
SIGSEGV
SIGTERM
}
<time.h>{日期和时间函数
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; 年
int tm_wday; 星期(0-6)
int tm_yday; 那一年的第几天(0-365)
int tm_isdst; 夏令时标记
}
clock_t clock(void); 放回程序执行后占用的处理器时间,单位为秒。
time_t time(time_t *tp); 放回当前日期
double difftime(time_t time2, time_t time1); time2-time1的值(秒),
time_t mktime(struct tm *tp); 将tm类型时间转换为time_t类型
char *asctime(const struct tm *tp);
将tm转换为字符串形式,Sun Jan 3 15:14:13 1988\n\0
char *ctime(const time_t *tp); 将time_t转换为当地时间,格式如上。
struct tm *gmtime(const time_t *tp); 将time_t转换为协调时间时UCT
struct tm *localtime(const time_t *tp); 将time_t类型转换为tm类型
size_t strftime(char *s, size_t smax, const char *fmt,
const struct tm*tp);
}
<limits.h>{一些常量(不同环境可能不同,这里列出最小值)
数据类型常量:
CHAR_BIT 8
CHAR_MAX 255或+127
CHAR_MIN 0或-127
INT_MAX 32767
INT_MIN -32767
LONG_BIT 32
LONG_MAX 2147483647
LONG_MIN -2147483647
SCHAR_MAX +127
SCHAR_MIN -127
SHRT_MAX +32767
SHRT_MIN -32767
UCHAR_MAX 255
UINT_MAX 65535
ULONG_MAX 4294967295
USHRT_MAX 65535
}
<float.h>{浮点算术运算相关常量(不同环境可能不同,这里列出最小值)
float类型相关的常量:
FLT_RADIX 2 指数表示的基数,如2、16
FLT_ROUNDS
FLT_DIG 6 表示精度
FLT_EPSILON 1E-5 最小的数,满足1.0+x != 1.0
FLT_MANT_DIG
FLT_MAX 1E+37 最大的浮点数
FLT_MAX_EXP
FLT_MIN 1E-37
FLT_MIN_EXP
double相关的常量:
DBL_DIG 10 表示精度
DBL_EPSILON 1E-9
DBL_MANT_DIG
DBL_MAX 1E+37 最大的浮点数
DBL_MAX_EXP
DBL_MIN 1E-37
DBL_MIN_EXP
}
2.2 C语言标准库
猜你喜欢
转载自blog.csdn.net/u013845608/article/details/85617773
今日推荐
周排行