当前位置:
文档之家› 第三章 C语言常用库函数及数学函数
第三章 C语言常用库函数及数学函数
printf函数格式字符
printf函数格式字符
格式字符 d ,i u o x, X c s f e, E g, G 意 义
按带符号十进制整数输出(正数不输出符号) 按无符号十进制整数输出 按无符号八进制整数输出(不输出前导符o) 按无符号十六进制整数输出 (不输出前导符ox) 按字符型输出,只输出一个字符 按字符串输出
库函数
C编译系统为方便用户使用而提供的 已经编写好的公共函数 。
ANSI C标准库函数大致分为以下几类:
输入/输出函数、数学函数、字符串函数、目录 函数、分类函数、诊断函数、时间日期函数、 其它函数。
注意
在C语言中要使用库函数,应当使用编译预处理命 令“#include”把与该库函数相关的头文件包含进 来
程序设计基础
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’为转义字符, }
【说明】
– 参数str可以是字符数组、字符指针或串常量。
28 2018/4/18
字符串函数
strlwr函数
– 函数原型:char *strlwr(char *str); – 功能:把字符串中的所有字母都变成小写。
18
scanf函数常用的修饰符
scanf函数修饰符
修饰符 l 意 义
输入long型(%ld,%lo,%lx,%lu)和double型(%lf,%le)数据。
h
m
输入short型(%hd,%ho,%hx,%hu)数据。
指定输入数据的宽度(正整数)。 本项输入不赋给变量,即跳过。
19
*
2018/4/18
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串的首地址。
利用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
起换行的作用 6
2018/4/18
printf()函数
格式字符串 在C语言中printf函数格式说明的一般形式为: % ± m n h/l
用来控制输出数据的类 型,不省略,常用符号 和含义如表
格式字符
开始 符
标志 字符
宽度指 示符
精度指 长度修 格式转换 示符 正符 字符
7
程序设计基础
2018/4/18
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 }
常用库函数及数学函数
1 2018/4/18
学习目标:
理解C语言中常用库函数的定义格式,掌握 并能灵活运用常用的输入输出函数、字符 串操作函数、数学运算函数。
2 2018/4/18
常用标准库函数
1. 2. 3. 4. 5. 输出函数 输入函数 字符串操作函数 数学函数 应用举例
3 2018/4/18
23 2018/4/18
gets()函数
格式:gets(str); 功能:接收从键盘输入的一个字符串,存放在字符数 组中。返回值是字符数组的起始地址。 体会字符串输入输出函数的功能。 #include ”stdio.h” void main() 读入从键盘输入的字符串 { char x[5]; gets(x); puts(x); 输出: good 若输入: good ↙ } 24
输出结果:a=3,b=4.00,c=k
16 2018/4/18
scanf()函数
2) 格式字符串 在C语言中scanf函数格式说明的一般形式为: % ± m n h/l
用来控制输入数据的类 型,常用符号和含义如 表4.3
格式字符
开始 符
标志 字符
宽度指 示符
精度指 长度修 格式转换 示符 正符 字符
3)使用scanf函数注意事项
① scanf函数中的“格式控制”后面应当是变量地址, 而不应是变量名。 ② scanf函数没有计算功能,因此输入的数据只能是常 量,而不能是表达式。 ③ 在输入多个整型数据或实型数据时,可以用一个或 若干个空格、Enter键(↙)或制表符(Tab)作为间 隔。但在输入多个字符型数据时,数据之间分隔符作 为有效字符。 如,scanf("%c%c%c",&x,&y,&z); //若输入a□b□c↙, 则x为'a',y为'□',z为'b'。
22 2018/4/18
getchar函数
格式:getchar( ); 功能:从键盘输入一个字符。该函数没有参数,但括 号不能省略。 getchar( )函数应用举例 # include <stdio.h> void main( ) { 一次只接收一个字符 char c; c=getchar( ); putchar( ); } 输出:h 若输入:h ↙
#
m .n
使八进制、十六进制输出带前导符:o、ox或oX。如:%#o、%#x
m为输出宽度,n为小数位数或输出的字符个数。不够规定宽度, 左补空格,超过规定宽度,按实际长度输出。如:% 6.2f; %6.9s 可加在格式字符d,u,o,x前面作前缀,输出 long或 double 型 时使用 ,如:% ld
17
2018/4/18
scanf函数格式字符
scanf函数格式字符
格式字符 d ,i u o x, X c s f e, E
2018/4/18
意 义 输入有符号的十进制整数 输入无符号的十进制整数 输入无符号的八进制整数 输入无符号的十六进制整数 输入一个字符 输入一个字符串 , 输入的字符串的头,尾和中间都不能 有空格。 输入一个小数形式的浮点数,可用小数或指数形式输入 输入一个指数形式的浮点数,可用小数或指数形式输入
按浮点型小数输出,隐含输出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
25 2018/4/18
字符串函数
字符串复制函数strcpy( )
– 函数原型:char *strcpy(char *str1, char *str2) – 功能:将字符串str2复制到字符串str1后,返回指向str1的指针。
【说明】
(1) 参数str2既可以为字符数组名、指向字符数组的指针变量,也可 以为字符串常量。 (2)str1串所在的字符数组要留有足够的空间,以确保复制字符串后 不出现超界现象。 (3)复制后str1原来内容被覆盖。
输入函数
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); }
【注意】
– 不能如此复制字符串:char str1[]=“abc”; char str2[]=str1;
26 2018/4/18
字符串函数
字符串比较函数strcmp( )
– 函数原型:int strcmp(char *str1, char *str2); – 功能:比较两个字符串的大小。
【说明】
(1)两个参数str1和str2既可以为字符数组名、指向字符数组的指针变量, 也可以为字符串常量。 (2)两个字符串进行比较不能直接用关系运算符进行比较,必须用 strcmp函数进行比较 (3)字符串之间比较的规则 (4)两个字符串比较结果的函数返回值等于第一个不同字符的ASCII代码 之差。