141 lines
4.2 KiB
Markdown
141 lines
4.2 KiB
Markdown
---
|
||
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) 该函数把小写字母转换为大写字母。
|
||
```
|