📜  C标准库参考教程(1)

📅  最后修改于: 2023-12-03 15:00:12.384000             🧑  作者: Mango

C标准库参考教程

C标准库是C语言程序员必不可少的一部分。C标准库提供了许多函数和头文件,可以帮助我们快速高效地开发C语言程序。

标准C库

标准C库是C语言的一个标准库,它由ISO C标准所定义,包含了C语言常用的头文件和函数库。标准C库主要包含以下几个方面:

  • 输入输出(I/O):stdio.h
  • 字符处理:ctype.h
  • 数学函数:math.h
  • 字符串操作:string.h
  • 时间和日期:time.h
  • 功能测试宏:features.h
I/O库

I/O库提供了用于读写文件和终端的函数。I/O函数通常使用缓冲区来提高效率。

fopen

fopen函数用于打开文件,并返回一个指向该文件的文件指针。

FILE *fopen(const char *filename, const char *mode);
  • filename:要打开的文件名
  • mode:打开文件的模式

打开文件的模式有以下几种:

  • "r":只读方式打开文件
  • "w":只写方式打开文件
  • "a":追加方式打开文件
  • "r+":读写方式打开文件
  • "w+":读写方式打开文件,如果文件不存在则创建文件
  • "a+":读写方式打开文件,在文件末尾追加
fread和fwrite

fread函数用于从文件中读取数据,fwrite函数用于向文件中写入数据。

size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
  • ptr:数据缓冲区的指针
  • size:每个数据块的大小
  • count:数据块的数量
  • stream:要读写的文件指针
fclose

fclose函数用于关闭文件。

int fclose(FILE *stream);
  • stream:要关闭的文件指针
字符处理库

字符处理库提供了用于处理字符的函数。

isalnum

isalnum函数用于判断一个字符是否为字母或数字。

int isalnum(int c);
  • c:要判断的字符
isalpha

isalpha函数用于判断一个字符是否为字母。

int isalpha(int c);
  • c:要判断的字符
isdigit

isdigit函数用于判断一个字符是否为数字。

int isdigit(int c);
  • c:要判断的字符
toupper和tolower

toupper函数用于将字母转换成大写字母,tolower函数用于将字母转换成小写字母。

int toupper(int c);
int tolower(int c);
  • c:要转换的字符
数学函数库

数学函数库提供了用于数学计算的函数。

sqrt

sqrt函数用于计算平方根。

double sqrt(double x);
  • x:要计算平方根的值
pow

pow函数用于计算一个数的幂次方。

double pow(double x, double y);
  • x:底数
  • y:指数
rand和srand

rand函数用于生成一个随机数,srand函数用于设置rand函数的种子值。

int rand(void);
void srand(unsigned int seed);
  • seed:随机数生成器的种子值
字符串处理库

字符串处理库提供了用于处理字符串的函数。

strlen

strlen函数用于计算一个字符串的长度。

size_t strlen(const char *s);
  • s:要计算长度的字符串
strcat

strcat函数用于将一个字符串拼接到另一个字符串的尾部。

char *strcat(char *dest, const char *src);
  • dest:目标字符串
  • src:要拼接的字符串
strcpy

strcpy函数用于将一个字符串复制到另一个字符串中。

char *strcpy(char *dest, const char *src);
  • dest:目标字符串
  • src:要复制的字符串
strcmp

strcmp函数用于比较两个字符串是否相等。

int strcmp(const char *s1, const char *s2);
  • s1:第一个字符串
  • s2:第二个字符串
时间和日期库

时间和日期库提供了用于处理时间和日期的函数。

time

time函数用于获取当前时间。

time_t time(time_t *t);
  • t:指向定义time_t类型的变量的指针,用于存储时间
localtime

localtime函数用于将time_t类型的时间转换为本地时间。

struct tm *localtime(const time_t *timep);
  • timep:要转换的时间
strftime

strftime函数用于将时间格式化为指定格式的字符串。

size_t strftime(char *s, size_t max, const char *format, const struct tm *tm);
  • s:要存储格式化后的字符串的缓冲区
  • max:缓冲区的大小
  • format:格式化字符串
  • tm:要格式化的时间
功能测试宏

功能测试宏用于测试各种标准头文件和函数库中是否定义了特定的常量和函数。

_POSIX_SOURCE

_POSIX_SOURCE用于测试是否支持POSIX标准(IEEE POSIX 1003.1)。

_XOPEN_SOURCE

_XOPEN_SOURCE用于测试是否支持X/Open标准。

_GNU_SOURCE

_GNU_SOURCE用于测试是否支持GNU库扩展。