#include <string.h>
`#include <string.h>` 是 C 语言中的一个预处理指令,用于包含标准库函数的声明,这些函数提供了对符串进行操作的功能。
`string.h` 是 C 标准库中专门用于字符串处理的头文件,它定义了一系列用于处理以 null 结尾的字符串的函数。
以下是 `string.h` 中定义的一些常用函数:
1. `strcpy()`:复制字符串。将一个字符串复制到另一个字符串中。
char *strcpy(char *dest, const char *src);
2. `strncpy()`:安全地复制指定数量的字符。可以防止缓冲区溢出。
char *strncpy(char *dest, const char *src, size_t n);
3. `strcat()`:连接字符串。将一个字符串追加到另一个字符串的末尾。
char *strcat(char *dest, const char *src);
4. `strncat()`:安全地连接指定数量的字符。
char *strncat(char *dest, const char *src, size_t n);
5. `strcmp()`:比较两个字符串。如果两个字符串相等,则返回 0。
int strcmp(const char *str1, const char *str2);
6. `strncmp()`:比较两个字符串的前 n 个字符。
int strncmp(const char *str1, const char *str2, size_t n);
7. `strlen()`:计算字符串的长度(不包括结尾的 null 字符)。
size_t strlen(const char *str);
8. `strchr()`:查找字符在字符串中首次出现的位置。
char *strchr(const char *str, int c);
9. `strrchr()`:查找字符在字符串中最后一次出现的位置。
char *strrchr(const char *str, int c);
10. `strstr()`:查找子字符串在另一个字符串中首次出现的位置。
char *strstr(const char *haystack, const char *needle);
11. `strtok()`:分割字符串为一系列的标记(token),基于给定的分隔符。
char *strtok(char *str, const char *delim);
12. `strspn()`:计算字符串中连续字符的最大长度,这些字符都属于另一个给定的字符串。
size_t strspn(const char *str1, const char *str2);
13. `strcspn()`:计算字符串中连续字符的最大长度,这些字符都不属于另一个给定的字符串。
`
size_t strcspn(const char *str1, const char *str2);
14. `strpbrk()`:查找字符串中首次出现任何字符的位置,这些字符都包含在另一个给定的字符串中。
char *strpbrk(const char *str1, const char *str2);
15. `strerror()`:返回一个指向错误消息字符串的指针,该错误消息对应于给定的错误码。
char *strerror(int errnum);
#include <stdio.h>
`#include <stdio.h>` 是 C 语言中的一个预处理指令,用于包含标准输入输出库(Standard Input Output Library)的头文件。
这个头文件提供了进行输入输出操作所需的一系列函数和宏定义。`stdio.h` 是 C 标准库中非常重要的一部分,它定义了用于处理文件和输入输出流的函数。
以下是 `stdio.h` 中定义的一些常用函数和宏:
1. `printf()`:向标准输出(通常是屏幕)打印格式化的字符串。
```c
int printf(const char *format, ...);
```
2. `scanf()`:从标准输入(通常是键盘)读取格式化的输入。
```c
int scanf(const char *format, ...);
```
3. `fprintf()`:类似于 `printf()`,但是用于向文件输出。
```c
int fprintf(FILE *stream, const char *format, ...);
```
4. `fscanf()`:类似于 `scanf()`,但是用于从文件读取输入。
```c
int fscanf(FILE *stream, const char *format, ...);
```
5. `sprintf()`:类似于 `printf()`,但是将格式化的输出写入字符串。
```c
int sprintf(char *str, const char *format, ...);
```
6. `sscanf()`:类似于 `scanf()`,但是用于从字符串读取输入。
```c
int sscanf(const char *str, const char *format, ...);
```
7. `fopen()`:打开文件并返回一个指向 `FILE` 对象的指针。
```c
FILE *fopen(const char *filename, const char *mode);
```
8. `fclose()`:关闭一个已经打开的文件。
```c
int fclose(FILE *stream);
```
9. `fread()`:从文件中读取数据块。
```c
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
```
10. `fwrite()`:将数据块写入文件。
```c
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
```
11. `fgets()`:从文件中读取一行字符串。
```c
char *fgets(char *str, int n, FILE *stream);
```
12. `fputs()`:将字符串写入文件。
```c
int fputs(const char *str, FILE *stream);
```
13. `getchar()`:从标准输入读取一个字符。
```c
int getchar(void);
```
14. `putchar()`:写一个字符到标准输出。
```c
int putchar(int c);
```
15. `gets()`:从标准输入读取一个字符串直到遇到换行符(已废弃,不安全)。
```c
char *gets(char *str);
```
16. `puts()`:写一个字符串到标准输出,并在末尾自动添加换行符。
```c
int puts(const char *str);
```
17. `remove()`:删除文件。
```c
int remove(const char *filename);
```
18. `rename()`:重命名文件。
```c
int rename(const char *oldname, const char *newname);
```
19. `setbuf()`:设置文件缓冲区。
```c
int setbuf(FILE *stream, char *buf);
```
20. `setvbuf()`:设置文件的缓冲区类型和大小。
```c
int setvbuf(FILE *stream, char *buf, int mode, size_t size);
```
。