第三章 C语言常用库函数及数学函数
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
23 2018/4/18
gets()函数
格式:gets(str); 功能:接收从键盘输入的一个字符串,存放在字符数 组中。返回值是字符数组的起始地址。 体会字符串输入输出函数的功能。 #include ”stdio.h” void main() 读入从键盘输入的字符串 { char x[5]; gets(x); puts(x); 输出: good 若输入: good ↙ } 24
2018/4/18
字符串函数
strcat( )
– 函数原型:char *strcat(char * str1, char * str2) – 功能:将以str2为首地址的字符串连接到str1串的后面,且从str1 串的’\0’所在单元连接起,即自动覆盖了str1串的结束标志’\0’。
【说明】
(1)参数str2既可以为字符数组名、指向字符数组的指针变量,也 可以为字符串常量。 (2)str1必须有足够的空间来存储连接结果,以确保两个字符串连 接后不出现超界现象。 (3)连接时取消str1后的‘\0’,只在连接后的新串尾部加‘\0’。 (4)该函数的返回值为str1串的首地址。
【注意】 对两个字符串比较,不能写成如下形式:
– if(str1==str2) 或if(str1>str2) 或if(str1<str2)
27 2018/4/18
字符串函数
求字符串长度函数strlen( )
– 函数原型: unsigned int strlen(char *str) – 功能:求字符串str的实际长度(从首地址到‘\0’之间的 字符个数,不包含’\0’),并将其作为函数值返回。
#
m .n
使八进制、十六进制输出带前导符:o、ox或oX。如:%#o、%#x
m为输出宽度,n为小数位数或输出的字符个数。不够规定宽度, 左补空格,超过规定宽度,按实际长度输出。如:% 6.2f; %6.9s 可加在格式字符d,u,o,x前面作前缀,输出 long或 double 型 时使用 ,如:% ld
程序设计基础
2018/4/18 4
输出函数
printf函数 格式:
printf(“格式控制”,输出表列);
功能:按“格式控制”中的格式说明符依次输出“输 出表列”中的各项,普通字符原样输出。
5 2018/4/18
printf()应用举例。 void main( ) 绿色部分为普通字符 { int x=26; 格式说明符 float y=6.9; char ch1=’a’; printf(”x的值为%d, y= %f”,x,y); printf(”ch1的十进制表示为 %d,ch1=%c\n”,ch1,ch1); ’\n’为转义字符, }
起换行的作用 6
2018/4/18
printf()函数
格式字符串 在C语言中printf函数格式说明的一般形式为: % ± m n h/l
用来控制输出数据的类 型,不省略,常用符号 和含义如表
格式字符
开始 符
标志 字符
宽度指 示符
精度指 长度修 格式转换 示符 正符 字符
7
程序设计基础
2018/4/18
利用putchar函数输出字符。
#include <stdio.h> void main( ) { char a,b,c,d; a=’g’; putchar(a); putchar(b); putchar(c); putchar(d); }2018/4/18
b=’o'; c=111; d='d';
输出结果:good
【说明】
– 参数str可以是字符数组、字符指针或串常量。
28 2018/4/18
字符串函数
strlwr函数
– 函数原型:char *strlwr(char *str); – 功能:把字符串中的所有字母都变成小写。
输出结果:a=3,b=4.00,c=k
16 2018/4/18
scanf()函数
2) 格式字符串 在C语言中scanf函数格式说明的一般形式为: % ± m n h/l
用来控制输入数据的类 型,常用符号和含义如 表4.3
格式字符
开始 符
标志 字符
宽度指 示符
精度指 长度修 格式转换 示符 正符 字符
11 2018/4/18
putchar()函数
格式:
putchar(ch)
功能:
把ch的值输出到显示器上,这里的ch可以是 字符型或整型变量或常量,也可以是一个转义 字符。
12 2018/4/18
putchar函数
说明:putchar是C语言的标准库函数,使用时必须
加编译预处理命令:
#include "stdio.h" 或 #include <stdio.h>
常用库函数及数学函数
1 2018/4/18
学习目标:
理解C语言中常用库函数的定义格式,掌握 并能灵活运用常用的输入输出函数、字符 串操作函数、数学运算函数。
2 2018/4/18
常用标准库函数
1. 2. 3. 4. 5. 输出函数 输入函数 字符串操作函数 数学函数 应用举例
3 2018/4/18
22 2018/4/18
getchar函数
格式:getchar( ); 功能:从键盘输入一个字符。该函数没有参数,但括 号不能省略。 getchar( )函数应用举例 # include <stdio.h> void main( ) { 一次只接收一个字符 char c; c=getchar( ); putchar( ); } 输出:h 若输入:h ↙
25 2018/4/18
字符串函数
字符串复制函数strcpy( )
– 函数原型:char *strcpy(char *str1, char *str2) – 功能:将字符串str2复制到字符串str1后,返回指向str1的指针。
【说明】
(1) 参数str2既可以为字符数组名、指向字符数组的指针变量,也可 以为字符串常量。 (2)str1串所在的字符数组要留有足够的空间,以确保复制字符串后 不出现超界现象。 (3)复制后str1原来内容被覆盖。
9 2018/4/18
l
例如:
自动对n位后小数四舍五入 %ld —— 输出十进制长整型数 %m.nf —— 右对齐,m位域宽,n位小数或n个字符 %-m.nf —— 左对齐 整数位数+小数位数+小数点
10 2018/4/18
例题:
main( ) { int a=11,b=22; int m=-1; long n=123456789; printf("%d %d\n",a,b); printf("a=%d, b=%d\n",a,b); 程序输出: printf("m: %d, %o, %x, %u\n",m,m,m,m); 1122 printf("n=%d\n",n); a=11, b=22 printf("n=%ld\n",n); m: -1, 177777, ffff, 65535 } n=-13035 n=123456789
21 2018/4/18
格式输入输出函数的功能。
#include "stdio.h" void main() { int x; 若输入: char y; 3a↙ scanf("%d",&x); scanf("%c",&y); printf("x=%d\n",x); printf("y=%c\n",y); 输出结果: x=3,y=a }
按浮点型小数输出,隐含输出6位小数
按科学计数法输出,数字部分的小数部分为6位
按 e 和 f 格式中较短的一种输出
8 2018/4/18
printf函数格式字符
常用的修饰符如表 (其中m、n均代表一个正整数)。 printf函数修饰符
修饰符 0 m - m + m 意 义
m为输出宽度,不足m时,左补零如:% 05d m为输出宽度,不足m时,右补空格如:%-5d m为输出宽度,不足m时,右补空格如:%-5d
17
2018/4/18
scanf函数格式字符
scanf函数格式字符
格式字符 d ,i u o x, X c s f e, E
2018/4/18
意 义 输入有符号的十进制整数 输入无符号的十进制整数 输入无符号的八进制整数 输入无符号的十六进制整数 输入一个字符 输入一个字符串 , 输入的字符串的头,尾和中间都不能 有空格。 输入一个小数形式的浮点数,可用小数或指数形式输入 输入一个指数形式的浮点数,可用小数或指数形式输入
库函数
C编译系统为方便用户使用而提供的 已经编写好的公共函数 。
ANSI C标准库函数大致分为以下几类:
输入/输出函数、数学函数、字符串函数、目录 函数、分类函数、诊断函数、时间日期函数、 其它函数。
注意
在C语言中要使用库函数,应当使用编译预处理命 令“#include”把与该库函数相关的头文件包含进 来
printf函数格式字符
printf函数格式字符
格式字符 d ,i u o x, X c s f e, E g, G 意 义
按带符号十进制整数输出(正数不输出符号) 按无符号十进制整数输出 按无符号八进制整数输出(不输出前导符o) 按无符号十六进制整数输出 (不输出前导符ox) 按字符型输出,只输出一个字符 按字符串输出
20 2018/4/18
3)使用scanf函数注意事项
④ 输入格式中,除格式说明符之外的普通字符应原 样输入。 如,scanf("x=%d,y=%d,z=%d",&x,&y,&z);// 应使 用x=12,y=34,z=56↙输入。 ⑤ 输入实型数据时,不能规定精度,如, scanf("%7.2f",&f); //是不合法的输入格式。 ⑥ 在输入数据时,遇到空格符、换行符或制表符 (Tab);遇到给定的宽度结束;遇到非法字符输 入情况,则认为是该数据输入结束。
18
scanf函数常用的修饰符
scanf函数修饰符
修饰符 l 意 义
输入long型(%ld,%lo,%lx,%lu)和double型(%lf,%le)数据。
h
m
输入short型(%hd,%ho,%hx,%hu)数据。
指定输入数据的宽度(正整数)。 本项输入不赋给变量,即跳过。
19
*
2018/4/18
【注意】
– 不能如此复制字符串:char str1[]=“abc”; char str2[]=str1;
26 2018/4/18
字符串函数
字符串比较函数strcmp( )
– 函数原型:int strcmp(char *str1, char *str2); – 功能:比较两个字符串的大小。
【说明】
(1)两个参数str1和stwk.baidu.com2既可以为字符数组名、指向字符数组的指针变量, 也可以为字符串常量。 (2)两个字符串进行比较不能直接用关系运算符进行比较,必须用 strcmp函数进行比较 (3)字符串之间比较的规则 (4)两个字符串比较结果的函数返回值等于第一个不同字符的ASCII代码 之差。
3)使用scanf函数注意事项
① scanf函数中的“格式控制”后面应当是变量地址, 而不应是变量名。 ② scanf函数没有计算功能,因此输入的数据只能是常 量,而不能是表达式。 ③ 在输入多个整型数据或实型数据时,可以用一个或 若干个空格、Enter键(↙)或制表符(Tab)作为间 隔。但在输入多个字符型数据时,数据之间分隔符作 为有效字符。 如,scanf("%c%c%c",&x,&y,&z); //若输入a□b□c↙, 则x为'a',y为'□',z为'b'。
13
puts()函数
格式: puts(s); 功能:在屏幕上输出字符串s。该函数没有返回值。 例4.4 体会字符串输出函数的功能。 #include "stdio.h" void main() { char x[]="abc123xyz"; puts(x); } 输出结果:abc123xyz
14 2018/4/18
输入函数
scanf()函数
1) 格式: scanf(“格式控制”,地址表列); 功能: 按“格式控制”中规定的格式,在键盘上输 入各地址表列的数据,在输入数据时普通字符要 原样输入。
15 2018/4/18
scanf()函数
scanf()函数应用举例。 void main( ) { int a; float b; 输入: a=3,b=4,c=k↙ char c; scanf(“a=%d,b=%f,c=%c”,&a,&b,&c); printf(“a=%d,b=%f,c=%c\n”,a,b,c); }
gets()函数
格式:gets(str); 功能:接收从键盘输入的一个字符串,存放在字符数 组中。返回值是字符数组的起始地址。 体会字符串输入输出函数的功能。 #include ”stdio.h” void main() 读入从键盘输入的字符串 { char x[5]; gets(x); puts(x); 输出: good 若输入: good ↙ } 24
2018/4/18
字符串函数
strcat( )
– 函数原型:char *strcat(char * str1, char * str2) – 功能:将以str2为首地址的字符串连接到str1串的后面,且从str1 串的’\0’所在单元连接起,即自动覆盖了str1串的结束标志’\0’。
【说明】
(1)参数str2既可以为字符数组名、指向字符数组的指针变量,也 可以为字符串常量。 (2)str1必须有足够的空间来存储连接结果,以确保两个字符串连 接后不出现超界现象。 (3)连接时取消str1后的‘\0’,只在连接后的新串尾部加‘\0’。 (4)该函数的返回值为str1串的首地址。
【注意】 对两个字符串比较,不能写成如下形式:
– if(str1==str2) 或if(str1>str2) 或if(str1<str2)
27 2018/4/18
字符串函数
求字符串长度函数strlen( )
– 函数原型: unsigned int strlen(char *str) – 功能:求字符串str的实际长度(从首地址到‘\0’之间的 字符个数,不包含’\0’),并将其作为函数值返回。
#
m .n
使八进制、十六进制输出带前导符:o、ox或oX。如:%#o、%#x
m为输出宽度,n为小数位数或输出的字符个数。不够规定宽度, 左补空格,超过规定宽度,按实际长度输出。如:% 6.2f; %6.9s 可加在格式字符d,u,o,x前面作前缀,输出 long或 double 型 时使用 ,如:% ld
程序设计基础
2018/4/18 4
输出函数
printf函数 格式:
printf(“格式控制”,输出表列);
功能:按“格式控制”中的格式说明符依次输出“输 出表列”中的各项,普通字符原样输出。
5 2018/4/18
printf()应用举例。 void main( ) 绿色部分为普通字符 { int x=26; 格式说明符 float y=6.9; char ch1=’a’; printf(”x的值为%d, y= %f”,x,y); printf(”ch1的十进制表示为 %d,ch1=%c\n”,ch1,ch1); ’\n’为转义字符, }
起换行的作用 6
2018/4/18
printf()函数
格式字符串 在C语言中printf函数格式说明的一般形式为: % ± m n h/l
用来控制输出数据的类 型,不省略,常用符号 和含义如表
格式字符
开始 符
标志 字符
宽度指 示符
精度指 长度修 格式转换 示符 正符 字符
7
程序设计基础
2018/4/18
利用putchar函数输出字符。
#include <stdio.h> void main( ) { char a,b,c,d; a=’g’; putchar(a); putchar(b); putchar(c); putchar(d); }2018/4/18
b=’o'; c=111; d='d';
输出结果:good
【说明】
– 参数str可以是字符数组、字符指针或串常量。
28 2018/4/18
字符串函数
strlwr函数
– 函数原型:char *strlwr(char *str); – 功能:把字符串中的所有字母都变成小写。
输出结果:a=3,b=4.00,c=k
16 2018/4/18
scanf()函数
2) 格式字符串 在C语言中scanf函数格式说明的一般形式为: % ± m n h/l
用来控制输入数据的类 型,常用符号和含义如 表4.3
格式字符
开始 符
标志 字符
宽度指 示符
精度指 长度修 格式转换 示符 正符 字符
11 2018/4/18
putchar()函数
格式:
putchar(ch)
功能:
把ch的值输出到显示器上,这里的ch可以是 字符型或整型变量或常量,也可以是一个转义 字符。
12 2018/4/18
putchar函数
说明:putchar是C语言的标准库函数,使用时必须
加编译预处理命令:
#include "stdio.h" 或 #include <stdio.h>
常用库函数及数学函数
1 2018/4/18
学习目标:
理解C语言中常用库函数的定义格式,掌握 并能灵活运用常用的输入输出函数、字符 串操作函数、数学运算函数。
2 2018/4/18
常用标准库函数
1. 2. 3. 4. 5. 输出函数 输入函数 字符串操作函数 数学函数 应用举例
3 2018/4/18
22 2018/4/18
getchar函数
格式:getchar( ); 功能:从键盘输入一个字符。该函数没有参数,但括 号不能省略。 getchar( )函数应用举例 # include <stdio.h> void main( ) { 一次只接收一个字符 char c; c=getchar( ); putchar( ); } 输出:h 若输入:h ↙
25 2018/4/18
字符串函数
字符串复制函数strcpy( )
– 函数原型:char *strcpy(char *str1, char *str2) – 功能:将字符串str2复制到字符串str1后,返回指向str1的指针。
【说明】
(1) 参数str2既可以为字符数组名、指向字符数组的指针变量,也可 以为字符串常量。 (2)str1串所在的字符数组要留有足够的空间,以确保复制字符串后 不出现超界现象。 (3)复制后str1原来内容被覆盖。
9 2018/4/18
l
例如:
自动对n位后小数四舍五入 %ld —— 输出十进制长整型数 %m.nf —— 右对齐,m位域宽,n位小数或n个字符 %-m.nf —— 左对齐 整数位数+小数位数+小数点
10 2018/4/18
例题:
main( ) { int a=11,b=22; int m=-1; long n=123456789; printf("%d %d\n",a,b); printf("a=%d, b=%d\n",a,b); 程序输出: printf("m: %d, %o, %x, %u\n",m,m,m,m); 1122 printf("n=%d\n",n); a=11, b=22 printf("n=%ld\n",n); m: -1, 177777, ffff, 65535 } n=-13035 n=123456789
21 2018/4/18
格式输入输出函数的功能。
#include "stdio.h" void main() { int x; 若输入: char y; 3a↙ scanf("%d",&x); scanf("%c",&y); printf("x=%d\n",x); printf("y=%c\n",y); 输出结果: x=3,y=a }
按浮点型小数输出,隐含输出6位小数
按科学计数法输出,数字部分的小数部分为6位
按 e 和 f 格式中较短的一种输出
8 2018/4/18
printf函数格式字符
常用的修饰符如表 (其中m、n均代表一个正整数)。 printf函数修饰符
修饰符 0 m - m + m 意 义
m为输出宽度,不足m时,左补零如:% 05d m为输出宽度,不足m时,右补空格如:%-5d m为输出宽度,不足m时,右补空格如:%-5d
17
2018/4/18
scanf函数格式字符
scanf函数格式字符
格式字符 d ,i u o x, X c s f e, E
2018/4/18
意 义 输入有符号的十进制整数 输入无符号的十进制整数 输入无符号的八进制整数 输入无符号的十六进制整数 输入一个字符 输入一个字符串 , 输入的字符串的头,尾和中间都不能 有空格。 输入一个小数形式的浮点数,可用小数或指数形式输入 输入一个指数形式的浮点数,可用小数或指数形式输入
库函数
C编译系统为方便用户使用而提供的 已经编写好的公共函数 。
ANSI C标准库函数大致分为以下几类:
输入/输出函数、数学函数、字符串函数、目录 函数、分类函数、诊断函数、时间日期函数、 其它函数。
注意
在C语言中要使用库函数,应当使用编译预处理命 令“#include”把与该库函数相关的头文件包含进 来
printf函数格式字符
printf函数格式字符
格式字符 d ,i u o x, X c s f e, E g, G 意 义
按带符号十进制整数输出(正数不输出符号) 按无符号十进制整数输出 按无符号八进制整数输出(不输出前导符o) 按无符号十六进制整数输出 (不输出前导符ox) 按字符型输出,只输出一个字符 按字符串输出
20 2018/4/18
3)使用scanf函数注意事项
④ 输入格式中,除格式说明符之外的普通字符应原 样输入。 如,scanf("x=%d,y=%d,z=%d",&x,&y,&z);// 应使 用x=12,y=34,z=56↙输入。 ⑤ 输入实型数据时,不能规定精度,如, scanf("%7.2f",&f); //是不合法的输入格式。 ⑥ 在输入数据时,遇到空格符、换行符或制表符 (Tab);遇到给定的宽度结束;遇到非法字符输 入情况,则认为是该数据输入结束。
18
scanf函数常用的修饰符
scanf函数修饰符
修饰符 l 意 义
输入long型(%ld,%lo,%lx,%lu)和double型(%lf,%le)数据。
h
m
输入short型(%hd,%ho,%hx,%hu)数据。
指定输入数据的宽度(正整数)。 本项输入不赋给变量,即跳过。
19
*
2018/4/18
【注意】
– 不能如此复制字符串:char str1[]=“abc”; char str2[]=str1;
26 2018/4/18
字符串函数
字符串比较函数strcmp( )
– 函数原型:int strcmp(char *str1, char *str2); – 功能:比较两个字符串的大小。
【说明】
(1)两个参数str1和stwk.baidu.com2既可以为字符数组名、指向字符数组的指针变量, 也可以为字符串常量。 (2)两个字符串进行比较不能直接用关系运算符进行比较,必须用 strcmp函数进行比较 (3)字符串之间比较的规则 (4)两个字符串比较结果的函数返回值等于第一个不同字符的ASCII代码 之差。
3)使用scanf函数注意事项
① scanf函数中的“格式控制”后面应当是变量地址, 而不应是变量名。 ② scanf函数没有计算功能,因此输入的数据只能是常 量,而不能是表达式。 ③ 在输入多个整型数据或实型数据时,可以用一个或 若干个空格、Enter键(↙)或制表符(Tab)作为间 隔。但在输入多个字符型数据时,数据之间分隔符作 为有效字符。 如,scanf("%c%c%c",&x,&y,&z); //若输入a□b□c↙, 则x为'a',y为'□',z为'b'。
13
puts()函数
格式: puts(s); 功能:在屏幕上输出字符串s。该函数没有返回值。 例4.4 体会字符串输出函数的功能。 #include "stdio.h" void main() { char x[]="abc123xyz"; puts(x); } 输出结果:abc123xyz
14 2018/4/18
输入函数
scanf()函数
1) 格式: scanf(“格式控制”,地址表列); 功能: 按“格式控制”中规定的格式,在键盘上输 入各地址表列的数据,在输入数据时普通字符要 原样输入。
15 2018/4/18
scanf()函数
scanf()函数应用举例。 void main( ) { int a; float b; 输入: a=3,b=4,c=k↙ char c; scanf(“a=%d,b=%f,c=%c”,&a,&b,&c); printf(“a=%d,b=%f,c=%c\n”,a,b,c); }