### **一、标准输入输出函数**(``) | 函数 | 功能 | 示例 | | --------- | -------------------- | ------------------------------------ | | `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);` | ------ ### **二、字符串处理函数**(``) | 函数 | 功能 | 示例 | | --------- | ------------------------ | --------------------------------- | | `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, ",");` | ------ ### **三、数学函数**(``) | 函数 | 功能 | 示例 | | ------- | ---------------- | --------------------------------------- | | `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` | ------ ### **四、内存操作函数**(``) | 函数 | 功能 | 示例 | | --------- | ------------ | ------------------------------------ | | `memset` | 设置内存的值 | `memset(buffer, 0, sizeof(buffer));` | | `memcpy` | 内存拷贝 | `memcpy(dest, src, n);` | | `memcmp` | 比较内存区域 | `memcmp(ptr1, ptr2, n);` | | `memmove` | 内存区域移动 | `memmove(dest, src, n);` | ------ ### **五、动态内存管理函数**(``) | 函数 | 功能 | 示例 | | --------- | -------------------- | ------------------------------------------- | | `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` | 获取当前时间戳 | `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);` | ------ ### **七、随机数函数**(``) | 函数 | 功能 | 示例 | | ------- | -------------- | ------------------------------ | | `rand` | 生成随机数 | `int r = rand();` | | `srand` | 设置随机数种子 | `srand((unsigned)time(NULL));` | ------ ### **八、进程控制函数**(``) | 函数 | 功能 | 示例 | | -------- | ------------ | ---------------- | | `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);` |