stdlib.h
int atoi(const char *str):转换为int
long int atol(const char *str):转换为long int
double atof(const char *str):转换为double
void abort(void):终止一个程序
int atexit(void (*func)(void)):当程序正常终止时,调用函数func
char *getenv(const char *name):获取环境变量
int system(const char *command):传递命令给系统执行
int abs(int x):返回x的绝对值
long int labs(long int x):返回x的绝对值
string.h
char *strchr(const char *str, int c):在参数 str 所指向的字符串中搜索第一次出现字符 c 的位置
char *strrchr(const char *str, int c):在参数 str 所指向的字符串中搜索最后一次出现字符 c 的位置
int strcmp(const char *str1, const char *str2):把 str1 所指向的字符串和 str2 所指向的字符串进行比较
int strncmp(const char *str1, const char *str2, size_t n):把 str1 和 str2 进行比较,最多比较前 n 个字节
void *memchr(const char *str, int c, size_t n):在参数 str 所指向的字符串的前 n 个字节中搜索第一次出现字符 c 的位置
int memcmp(const void *str1, const void *str2, size_t n):把 str1 和 str2 的前 n 个字节进行比较
char *strncat(char *dest, const char *src, size_t n):把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止
char *strncpy(char *dest, const char *src, size_t n):把 src 所指向的字符串复制到 dest,最多复制 n 个字符
size_t strlen(const char *s); 计算指定指定字符串s的长度,不包含字符串结束符‘\0’
char *strcpy(char *dest, const char *src); 把src所指向的字符串复制到dest所指向的空间中,'\0'也会拷贝过去
char *strcat(char *dest, const char *src); 将src字符串连接到dest的尾部,‘\0’也会追加过去
char *strstr(const char *haystack, const char *needle);在字符串haystack中查找字符串needle出现的位置,返回第一次出现的needle地址
String 常用函数的实现:
math.h
定义了各种数学函数,在这个库中所有可用的功能都带有一个 double 类型的参数,且都返回 double 类型的结果
double modf(double x, double *integer):返回值为小数部分,并设置integer为整数部分
double pow(double x, double y):返回x的y次幂
double sqrt(double x):返回x的平方根
double fabs(double x):返回x的绝对值
常用的内存操作处理函数
void *memset(void *s, int c, size_t n);
/*功能:将s的内存区域的前n个字节以参数c填入
参数:
s:需要操作内存s的首地址
c:填充的字符,c虽然参数为int,但必须是unsigned char , 范围为0~255
n:指定需要设置的大小
返回值:s的首地址
*/
void *memcpy(void *dest, const void *src, size_t n);
/*功能:拷贝src所指的内存内容的前n个字节到dest所值的内存地址上。
参数:
dest:目的内存首地址
src:源内存首地址,注意:dest和src所指的内存空间不可重叠
n:需要拷贝的字节数
返回值:dest的首地址
*/
void *memmove(void *dest, const void *src, size_t n);
/*memmove()功能用法和memcpy()一样,区别在于:dest和src所指的内存空间重叠时,memmove()仍然能处理,不过执行效率比memcpy()低些。*/
int memcmp(const void *s1, const void *s2, size_t n);
/*功能:比较s1和s2所指向内存区域的前n个字节
参数:
s1:内存首地址1
s2:内存首地址2
n:需比较的前n个字节
返回值:
相等:=0
大于:>0
小于:<0
*/
void *malloc(size_t size);
/*功能:在内存的动态存储区(堆区)中分配一块长度为size字节的连续区域,用来存放类型说明符指定的类型。分配的内存空间内容不确定,一般使用memset初始化。
参数:
size:需要分配内存大小(单位:字节)
返回值:
成功:分配空间的起始地址
失败:NULL*/
void free(void *ptr);
功能:释放ptr所指向的一块内存空间,ptr是一个任意类型的指针变量,指向被释放区域的首地址。对同一内存空间多次释放会出错。