### **一、标准输入输出函数**(`<stdio.h>`)

| 函数      | 功能                 | 示例                                 |
| --------- | -------------------- | ------------------------------------ |
| `printf`  | 格式化输出           | `printf("Hello, %s!\n", "World");`   |
| `scanf`   | 格式化输入           | `scanf("%d", &num);`                 |
| `putchar` | 输出单个字符         | `putchar('A');`                      |
| `getchar` | 输入单个字符         | `char c = getchar();`                |
| `puts`    | 输出字符串并换行     | `puts("Hello World!");`              |
| `gets`    | 读取一行字符串       | `char str[100]; gets(str);`          |
| `fopen`   | 打开文件             | `FILE *fp = fopen("test.txt", "r");` |
| `fclose`  | 关闭文件             | `fclose(fp);`                        |
| `fread`   | 从文件读取数据       | `fread(buffer, 1, size, fp);`        |
| `fwrite`  | 向文件写入数据       | `fwrite(data, 1, size, fp);`         |
| `fprintf` | 格式化写入文件       | `fprintf(fp, "Value: %d\n", value);` |
| `fscanf`  | 格式化从文件读取数据 | `fscanf(fp, "%d", &value);`          |

------

### **二、字符串处理函数**(`<string.h>`)

| 函数      | 功能                     | 示例                              |
| --------- | ------------------------ | --------------------------------- |
| `strlen`  | 计算字符串长度           | `size_t len = strlen("Hello");`   |
| `strcpy`  | 复制字符串               | `strcpy(dest, src);`              |
| `strncpy` | 复制指定长度字符串       | `strncpy(dest, src, 5);`          |
| `strcat`  | 拼接字符串               | `strcat(dest, src);`              |
| `strncat` | 拼接指定长度字符串       | `strncat(dest, src, 5);`          |
| `strcmp`  | 比较两个字符串           | `strcmp(str1, str2);`             |
| `strncmp` | 比较指定长度的字符串     | `strncmp(str1, str2, 5);`         |
| `strchr`  | 查找字符在字符串中的位置 | `char *p = strchr(str, 'a');`     |
| `strstr`  | 查找子串                 | `char *p = strstr(str, "test");`  |
| `strtok`  | 分割字符串               | `char *token = strtok(str, ",");` |

------

### **三、数学函数**(`<math.h>`)

| 函数    | 功能             | 示例                                    |
| ------- | ---------------- | --------------------------------------- |
| `abs`   | 计算整数绝对值   | `int value = abs(-10);`                 |
| `fabs`  | 计算浮点数绝对值 | `double value = fabs(-3.14);`           |
| `pow`   | 计算幂           | `double result = pow(2.0, 3.0); // 2^3` |
| `sqrt`  | 计算平方根       | `double result = sqrt(9.0);`            |
| `ceil`  | 向上取整         | `double result = ceil(3.14); // 4.0`    |
| `floor` | 向下取整         | `double result = floor(3.14); // 3.0`   |
| `round` | 四舍五入         | `double result = round(3.5); // 4.0`    |
| `sin`   | 计算正弦值       | `double result = sin(M_PI / 2); // 1.0` |
| `cos`   | 计算余弦值       | `double result = cos(0); // 1.0`        |
| `tan`   | 计算正切值       | `double result = tan(M_PI / 4); // 1.0` |

------

### **四、内存操作函数**(`<string.h>`)

| 函数      | 功能         | 示例                                 |
| --------- | ------------ | ------------------------------------ |
| `memset`  | 设置内存的值 | `memset(buffer, 0, sizeof(buffer));` |
| `memcpy`  | 内存拷贝     | `memcpy(dest, src, n);`              |
| `memcmp`  | 比较内存区域 | `memcmp(ptr1, ptr2, n);`             |
| `memmove` | 内存区域移动 | `memmove(dest, src, n);`             |

------

### **五、动态内存管理函数**(`<stdlib.h>`)

| 函数      | 功能                 | 示例                                        |
| --------- | -------------------- | ------------------------------------------- |
| `malloc`  | 动态分配内存         | `int *p = (int *)malloc(10 * sizeof(int));` |
| `calloc`  | 动态分配并初始化内存 | `int *p = (int *)calloc(10, sizeof(int));`  |
| `realloc` | 重新分配内存大小     | `p = (int *)realloc(p, 20 * sizeof(int));`  |
| `free`    | 释放动态分配的内存   | `free(p);`                                  |

------

### **六、时间与日期函数**(`<time.h>`)

| 函数        | 功能               | 示例                                     |
| ----------- | ------------------ | ---------------------------------------- |
| `time`      | 获取当前时间戳     | `time_t t = time(NULL);`                 |
| `clock`     | 获取程序运行时间   | `clock_t c = clock();`                   |
| `difftime`  | 计算时间差         | `double diff = difftime(t1, t2);`        |
| `localtime` | 转换为本地时间结构 | `struct tm *lt = localtime(&t);`         |
| `strftime`  | 格式化时间为字符串 | `strftime(buffer, 100, "%Y-%m-%d", lt);` |

------

### **七、随机数函数**(`<stdlib.h>`)

| 函数    | 功能           | 示例                           |
| ------- | -------------- | ------------------------------ |
| `rand`  | 生成随机数     | `int r = rand();`              |
| `srand` | 设置随机数种子 | `srand((unsigned)time(NULL));` |

------

### **八、进程控制函数**(`<stdlib.h>`)

| 函数     | 功能         | 示例             |
| -------- | ------------ | ---------------- |
| `exit`   | 退出程序     | `exit(0);`       |
| `system` | 执行系统命令 | `system("dir");` |

------

### **九、其他常用函数**

| 函数             | 功能           | 示例                                      |
| ---------------- | -------------- | ----------------------------------------- |
| `atoi`           | 字符串转整数   | `int num = atoi("123");`                  |
| `atof`           | 字符串转浮点数 | `double num = atof("3.14");`              |
| `itoa`(非标准) | 整数转字符串   | `itoa(123, buffer, 10);`                  |
| `qsort`          | 快速排序       | `qsort(arr, n, sizeof(int), cmp);`        |
| `bsearch`        | 二分查找       | `bsearch(key, arr, n, sizeof(int), cmp);` |