ANSI C标准库中的常用函数

43a7d933c895d14368d4f75573f082025aaf0721

ANSI标准中的c语言库函数有以下15个头文件

<assert.h> <float.h> <math.h> <stdarg.h> <stdlib.h>
<ctype.h> <limits.h> <setjmp.h> <stddef.h> <string.h>
<errno.h> <locale.h> <signal.h> <stdio.h> <time.h>

 

一、输入输出:<stdio.h>

包含输入输出的函数、类型和宏。程序开始时,stdin、stdout和stderr三个流已经被打开。

1. 打开文件fopen

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

打开文件名为filename的文件,返回与之关联的流。打开失败返回NULL。

mode的合法值:

“r” 打开文本文件用于读。
“w” 创建文本文件用于写,并删除已存在的内容(如果有的话)。
“a” 添加;打开或创建文本文件用于在文件末尾写。
“r+” 打开文本文件用于更新(即读和写)。
“w+” 创建文本文件用于更新,并删除已存在的内容(如果有的话)。
“a+” 添加;打开或创建文本文件用于更新和在文件末尾写。

2. 流重定向freopen

FILE *freopen(const char *filename, const char *mode,FILE *stream)

用mode指定的方式打开filename指定的文件,并让该文件和stream指定的流关联。返回指向stream的指针;出错返回NULL。一般用于对标准输入stdin和标准输出stdout进行重定向。

使用input.txt来重定向输入流的语句如下:

freopen("input.txt", "r", stdin);

3. 格式化输出

int fprintf(FILE *stream, const char *format, ...)
int printf(const char *format, ...)
int sprintf(char *s, const char *format, ...)

参考:printf函数详解 格式化输出

4. 格式化输入

int fscanf(FILE *stream, const char *format, ...)
int scanf(const char* format, . . .)
int sscanf(char *s,const *format, ... )

%d用于读入十进制整数

%o 读入八进制

%x读入十六进制

%i读入整数,十进制或者0开头的八进制,或者0x、0X开头的十六进制

%f 读入浮点数

%s 读入字符串,不包含空白符。会自动在末尾添加’\0′

scanf的返回值是成功读入变量的个数,如果一直循环到文件尾,可能的代码是这样的

while (scanf("%d", &N) == 1)
{
    //do something
}

5. 字符输入输出

int fgetc(FILE *stream)
char *fgets(char *s, int n, FILE *stream)
int fputc(int c, FILE *stream)
int fputs(const char *s, FILE *stream)
int getc(FILE *stream)
int getchar(void)
char *gets(char *s)
int putc(int c, FILE *stream)
int putchar(int c)
int puts(const char *s)
int ungetc(int c, FILE *stream)

gets用于读入一行字符串,会把换行符替换为’\0’,到达文件尾返回NULL。

puts用于把字符串s和一个换行符输出到stdout。

二、字符类测试:<ctype.h>

1. 测试

isalnum(c):函数isalpha(c)或isdigit(c)为真。

isalpha(c):函数isupper(c)或islower(c)为真。

isdigit(c):c为十进制数字。

islower(c):c是小写字母。

isupper(c):c是大写字母。

isxdigit(c):c是十六进制数字。

2. 大小写转换

int tolower(int c) 把c转换为小写字母
int toupper(int c) 把c转换为大写字母

三、字符串函数:<string.h>

1. str开头

参考: C语言字符串库函数

2. 内存操作

void *memset(s,c,n)

用于把s中的前n个字节替换为c

四、数学函数 <math.h>

p o w ( x , y ) 求x的y次方

sqrt(x) 求x的平方根

五、实用函数库 <stdlib.h>

1. 随机数

void srand(unsigned int seed)

srand函数用参数seed作为生成新的伪随机数序列的种子。种子seed的初值为1。

int rand(void)
rand函数用于产生一个0到RAND_MAX之间的伪随机整数。RAND_MAX的取值至少为
32767。

一个产生随机数的代码如下:

#include <stdlib.h>
#include <time.h>

srand(time(NULL));
for (i = 1; i <= 100; i++)
{
	a[i] = rand()%200;
}

 2.内存分配

void *malloc(size_t size)
void free(void *p)

3. 查找和排序

void * bsearch(const void *key, const void *base,
               size_t n, size_t size,
               int (*cmp)(const void *keyval, const void *datum)

void qsort(void *base, size_t n, size_t size,
           int (*cmp)(const void *, const void *))

参考:函数指针使用和qsort函数示例

4. 绝对值

int abs(int n)

 

如果文章对你有帮助,欢迎点赞或打赏(金额不限)。你的打赏将全部用于支付网站服务器费用和提高网站文章质量,谢谢支持。

版权声明:

本文由 原创,商业转载请联系作者获得授权。
非商业转载请注明作者 雅乐网 ,并附带本文链接:
https://www.yalewoo.com/ansi_c_standard_library.html

上一篇:

下一篇:

我要评论

验证码*: 7 + 6 =