---
title: 内置函数
date: 2024-06-06T23:51:12Z
tags: []
---

## ​​stdio.h

- 读写文件

  ​`FILE *fopen(const char *filename, const char *mode)`​

  > - filename -- 字符串，表示要打开的文件名称
  > - mode -- 字符串，表示文件的访问模式

- 格式化输出字符串 ​

  ​`snprintf ( char \* str, size_t size, const char \* format, ... )`​

  > - **str** -- 目标字符串，用于存储格式化后的字符串的字符数组的指针。
  > - **size** -- 字符数组的大小。
  > - **format** -- 格式化字符串。
  > - **...** -- 可变参数，可变数量的参数根据 format 中的格式化指令进行格式化。

- 清除缓存

  ```c
  fflush(stdin)
  ```

## stdlib.h

- 清屏命令

  ```c
  system("cls"); // windows清屏命令
  system("clear"); //Linux和macOS清屏命令
  ```

- 手动管理内存

  - 分配所需的内存空间，并返回一个指向它的指针, 不会设置内存为零

    ​`void *malloc(size_t size)`​

  - 分配所需的内存空间，并返回一个指向它的指针, 会设置分配的内存为零  
    ​`void *calloc(size_t nitems, size_t size)`​
  - 尝试重新调整之前调用所分配的指针所指向的内存块的大小  
    ​`void *realloc(void *ptr, size_t size)`​
  - 释放之前调用 函数 所分配的内存空间  
    ​`void free(void *ptr)`​
  - > - **ptr** -- 指针指向一个分配内存的内存块的指针。
    > - **size** -- 内存块的大小，以字节为单位。
    > - **nitems** -- 要被分配的元素个数。

- 排序

  ```c
  void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))
  ```

  > - **base** -- 指向要排序的数组的第一个元素的指针。
  > - **nitems** -- 由 base 指向的数组中元素的个数。
  > - **size** -- 数组中每个元素的大小，以字节为单位。
  > - **compar** -- 用来比较两个元素的函数。
  > - 该函数不返回任何值。

- 随机数

  1. 设置随机数种子

     ```c
     void srand(unsigned int seed)
     ```

     > **seed** -- 这是一个整型值，用于伪随机数生成算法播种。

  2. 获取随机数

     ```c
     int rand(void)
     ```

     > 该函数返回一个范围在 0 到 RAND_MAX 之间的整数值。

## string.h

1. 字符追加

   ```c
   char *strncat(char *dest, const char *src, size_t n)
   ```

   > - **dest** -- 指向目标数组，该数组包含了一个 C 字符串，且足够容纳追加后的字符串，包括额外的空字符。
   > - **src** -- 要追加的字符串。
   > - **n** -- 要追加的最大字符数。
   > - 该函数返回一个指向最终的目标字符串 dest 的指针。

2. 字符串检索

   ```c
   char *strstr(const char *haystack, const char *needle)
   ```

   > - **haystack** -- 要被检索的 C 字符串。
   > - **needle** -- 在 haystack 字符串内要搜索的小字符串。
   > - 该函数返回在 haystack 中第一次出现 needle 字符串的位置，如果未找到则返回 null。

## time.h

time(null)返回当前时间戳 unistd.h

sleep(1); // 暂停 1 秒

## conio.h

\_kbhit()//如果有按键按下，则\_kbhit()函数返回真
\_getch();//使用\_getch()函数获取按下的键值

## errno.h

errno 返回系统发生错误代码

## ctype.h

```c
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) 该函数把小写字母转换为大写字母。
```
