c语言常用库函数的用法,事半功倍!C语言中常用的库函数(详解)

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

温馨提示:

对于已定义的函数,我们不仅要关心其用途,更要关心它的返回值类型和参数类型

本文介绍包含以下库

#include

#include

#include

#include

#include

一。ctype.h库

01

int tolower(int c)

如果是大写字符,转换为小写字符1tolower('C');

02

int toupper(int c)

如果是小写字符,转换为大写字符1toupper('a');//A

二。math.h库

01

double cos(double x) 返回余弦值

double sin(double x) 返回正弦值

double tan(double x) 返回正切值1cos(3.14);

02

double pow(double x,double y)

返回x的y次方

注意:形式参数和返回值都是double类型1pow(4.0, 3.0);//64.0

03

double ceil(double x)

返回不小于x的最小整数值1ceil(3.26);//4.0

double floor(double x)

返回不大于x的最大整数值1floor(3.26);//3.0

04

double fabs(double x)

返回x的绝对值1fabs(-3.5);//3.5

05

double round(double x)

将x四舍五入为整数1round(5.5);//6

三。stdio.h库

01

int getchar()

读取标准输入的下一个字符

02

char* gets(char *)

读取标准输入的下一行(C11标准已废除)

它的返回值和传进去的参数相同

该函数将n丢弃

03

int putchar(int)

把字符输出1putchar('A');

04

int puts(char *)

将字符串输出,并自动换行1puts("hhhhhhh");

05

int scanf(…….)

常用不解释,只强调一点

返回的值为:正确按指定格式输入变量的个数;也即能正确接收到值的变量个数。(这点有时很好用)

当scanf接收到错误格式的值时,该值不会被写入变量中,相当于scanf函数无效执行(查错时可以注意这一点)

注:IO函数还有很多,期末不考,就未完待续吧。

四。stdlib.h库

01

void * malloc(size_t size)

分配size大小的空间并返回该空间的头指针1char* p = malloc(sizeof(char) * 5);

02

void free(void* ptr)

释放空间,与malloc搭配使用1free(p);

03

int abs(int n)

返回n的绝对值

想不到吧,我居然不在数学库math.h

注意:只能处理整形1abs(-4);//4

五。string.h库

这个库重要函数比较多,熟记它们对于处理字符串帮助很大

01-1

void* strchr(void *s, int c);

在s指向对象数组的前n个字符中查找是否有c,如果找到,则返回首次出现c处的指针;如果未找到,则返回NULL1

2

3char* s1 = "jakld $ hhhha d";

char* s2 = strchr(s1, '$');

puts(s2);//"$ hhhha d"

01-2

char* strstr(const char* str,const char* substr)

返回字符串str中第一次出现子串substr的地址;如果没有检索到子串,则返回NULL

查找字符串时特别好用

01-3

char* strrchr(const char* str, char c)

返回最后一次出现c的位置的指针,如果s中不存在c则返回NULL

02-1

char* strcat(char* restrict s1, char* restrict s2)

把s2拷贝到s1的后面1

2

3

4char s3[100] = "aaa";

char s4[100] = "bbb";

strcat(s3, s4);

puts(s3);//"aaabbb"

02-2

char* strncat(char* restrict s1, char* restrict s2, size_t n)

把s2拷贝到s1的后面,最多拷贝n个1

2strncat(s3, s4, 2);

puts(s3);//"aaabbbbb"

03

size_t strlen(const char* str)

返回字符串的字符数1strlen(s4);//3

04-1

char* strcpy(char* dest, char* src)

将参数src字符串拷贝至参数dest所指的地址

返回参数dest的字符串起始地址

会将源字符串src的’ ’拷贝到目标空间1

2strcpy(s3+1, s4);

puts(s3);//"abbb"

04-2

char* strncpy(char* dest, const char* src, size_t num)

拷贝src字符串的前num个字符至dest

返回dest字符串起始地址

strncpy不会向dest追加’ ’1

2strncpy(s3 + 2, s4, 1);

puts(s3);//"abbb"

05-1

int strcmp(const char* str1, const char* str2)

比较字符串s1,s2,若参数s1和s2字符串相同则返回0,s1若大于s2则返回大于0的值,s1若小于s2则返回小于0的值1strcmp(s3, s4);//返回一个负数

05-2

int strncmp(const char* str1, const char* str2, size_t num)

比较字符串s1,s2,只比较前num个字符,若参数s1和s2字符串相同则返回0,s1若大于s2则返回大于0的值,s1若小于s2则返回小于0的值

06

char* strtok(char* str,const char* sep)

根据分隔符将字符串分隔成一个个片段,返回下一个分割后的字符串指针,如果已无从分割则返回NULL1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16char b[100] = "There is a good man";

char* c = " ";

char* token = strtok(b, c);

while (token != NULL) {

printf("token is : ");

puts(token);

token = strtok(NULL, c);

}//该例将字符串b用空格分隔为五个单独的字符串

//输出结果:

/*

token is : There

token is : is

token is : a

token is : good

token is : man

*/

07

int fputs(const char *str, FILE *stream)

把字符串写入到指定的流 stream 中,但不包括空字符。

使用时将第三个实参写成 stdout (即标准输出)就可以向控制台输出字符串

fputs和puts的一个区别在于,它不会在输出后自动换行1fputs(s1, stdin);

08

char *fgets(char *str, int n, FILE *stream)

从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,它会停止。

使用时将第三个实参写成 stdin (即标准输入)就可以从控制台接收字符串

fgets和gets的一个区别在于,它会读取换行符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值