C++程序设计:第10章 常用字符串处理函数

上传人:工**** 文档编号:568800372 上传时间:2024-07-26 格式:PPT 页数:44 大小:849KB
返回 下载 相关 举报
C++程序设计:第10章 常用字符串处理函数_第1页
第1页 / 共44页
C++程序设计:第10章 常用字符串处理函数_第2页
第2页 / 共44页
C++程序设计:第10章 常用字符串处理函数_第3页
第3页 / 共44页
C++程序设计:第10章 常用字符串处理函数_第4页
第4页 / 共44页
C++程序设计:第10章 常用字符串处理函数_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《C++程序设计:第10章 常用字符串处理函数》由会员分享,可在线阅读,更多相关《C++程序设计:第10章 常用字符串处理函数(44页珍藏版)》请在金锄头文库上搜索。

1、1请将您的手机铃声请将您的手机铃声设置为震动设置为震动2复复 习习 回回 顾顾v字符数组的定义字符数组的定义v字符数组的初始化字符数组的初始化v字符串的输入输出字符串的输入输出v常用字符串处理函数常用字符串处理函数3常用字符串处理函数常用字符串处理函数字符串输入函数字符串输入函数gets 格式:格式:gets(字符数组字符数组名名)字符串输出函数字符串输出函数puts 格式:格式:puts(字符数组名字符数组名)4字符串连接函数字符串连接函数strcat 格式:格式:strcat(字符数组字符数组1,字符数组字符数组2)常用字符串处理函数常用字符串处理函数字符串拷贝函数字符串拷贝函数strcp

2、y 格式:格式:strcpy(字符数组字符数组1,字符串字符串2)5字符串比较函数字符串比较函数strcmp 格式:格式:strcmp(字符串字符串1,字符串字符串2)常用字符串处理函数常用字符串处理函数字符串长度函数字符串长度函数strlen 格式:格式:strlen(字符数组字符数组)6str0str1str2课堂练习课堂练习编写程序,求出三个字符串中最大者编写程序,求出三个字符串中最大者 H E L 0 W E L L 0 W E 07#include main() char string20,str320; int i; for(i=0;i0) strcpy(string,str0);

3、else strcpy(string,str1);if(strcmp(str2,string)0) strcpy(string,str2);8例子例子#include stdio.hvoid main() float a,b,c,d,m,n,p,q,r,s; scanf(%f,%f,%f,%f,&a,&b,&c,&d); printf(%f,%f,%f,%f,%f,%f,m,n,p,q,r,s);m=(a*a+b*b)/a- (a*a-b*b) /b;n=(a*a+c*c)/a- (a*a-c*c)/c; p=(a*a+d*d)/a- (a*a-d*d)/d;q=(b*b+c*c)/b- (b

4、*b-c*c)/c;r=(b*b+d*d)/b- (b*b-d*d)/d;s=(c*c+d*d)/c- (c*c-d*d)/d;00000000009例例 改进程序改进程序void main() float a,b,c,d; scanf(%f,%f,%f,%f,&a,&b,&c,&d);#include stdio.hvoid cal(float x, float y) float z; z= (x*x+y*y)/x-(x*x-y*y)/y; printf(%fn,z); cal(a,b); cal(a,c); cal(a,d);cal(b,c); cal(b,d); cal(c,d);000

5、000000010v函数的概念函数的概念v函数的定义函数的定义 v函数的调用函数的调用 v函数的嵌套函数的嵌套函数函数函数的调用函数的调用11函数的概念函数的概念模块化程序设计模块化程序设计12函数的概念函数的概念模块化程序设计模块化程序设计函数式程序结构函数式程序结构 C语言程序是一个函数式的程序结构,语言程序是一个函数式的程序结构,其全部功能都是由函数实现的,每个函数其全部功能都是由函数实现的,每个函数完成特定的独立的功能,通过函数之间的完成特定的独立的功能,通过函数之间的调用实现程序的总体功能。调用实现程序的总体功能。13函数的概念函数的概念模块化程序设计模块化程序设计函数式程序结构函数

6、式程序结构sum(float x, float y) float z; z=x+y; return(z);sub(float x, float y) float z; z=x-y; return(z);#include stdio.hvoid main() float a,b,c,d; scanf(%f,%f,&a,&b); c=sum(a,b); d=sub(a,b); printf(%f,%fn,c,d);14函数的概念函数的概念模块化程序设计模块化程序设计函数式程序结构函数式程序结构三种类型的函数三种类型的函数从用户角度来看,从用户角度来看,C函数可分为主函数、函数可分为主函数、库函数、

7、用户自定义函数库函数、用户自定义函数主函数主函数库函数库函数用户自定义函数用户自定义函数15函数的概念函数的概念模块化程序设计模块化程序设计函数式程序结构函数式程序结构三种类型的函数三种类型的函数函数的执行顺序函数的执行顺序程序的执行由主函数开始,然后调用其程序的执行由主函数开始,然后调用其它函数,最终返回主函数结束它函数,最终返回主函数结束主函数开始主函数开始主函数结束主函数结束16void main( ) f1( ); void f1( ) 函数的概念函数的概念17模块化程序设计模块化程序设计函数式程序结构函数式程序结构三种类型的函数三种类型的函数函数的执行顺序函数的执行顺序函数的概念函数

8、的概念函数式结构优点函数式结构优点1.程序层次清晰、易于检查错误程序层次清晰、易于检查错误2.便于分工编写、节省程序代码便于分工编写、节省程序代码18函数的定义函数的定义函数类型函数类型 函数名函数名(形参形参类型说明表类型说明表)说明部分说明部分 语句部分语句部分合法标识符合法标识符函函数数体体函数返回值类型函数返回值类型, ,缺省缺省int型型, ,无返回值无返回值void型型19函数的定义函数的定义例例 有参函数(新式风格)有参函数(新式风格) int max(int x,int y) int z; z=xy?x:y; return(z); max(int x, int y)函数类型函数

9、类型 函数名函数名(形参形参类型说明表类型说明表)说明部分说明部分 语句部分语句部分20例例 无参无返回值函数无参无返回值函数 void printstar( ) printf(*n); 函数的定义函数的定义函数类型函数类型 函数名函数名(形参形参类型说明表类型说明表)说明部分说明部分 语句部分语句部分21函数的定义函数的定义例例 有参函数(旧式风格)有参函数(旧式风格) int max(x,y) int x, int y; int z; z=xy?x:y; return(z); 函数类型函数类型 函数名函数名(形式形式参数列表参数列表)形参类型说明形参类型说明说明部分说明部分 语句部分语句部

10、分22#include stdio.hmax(int x, int y) int z; z=xy?x:y; return(z);例例 比较两数并输出较大数比较两数并输出较大数m=max(3,5);max(int x, int y) int z; z=xy?x:y; return(z); 55void main() int a,b,m; scanf(%d,%d,&a,&b); m=max(a,b); printf(max is %dn,m);23函数的定义函数的定义v返值形式:返值形式:return (表达式表达式); return 表达式表达式;return;v返值功能:返值功能:使程序控制从

11、被调用函使程序控制从被调用函数返回到调用函数中,同时把返回值数返回到调用函数中,同时把返回值带给调用函数带给调用函数24v返值返值说明:说明:函数的定义函数的定义函数体中可以有多个函数体中可以有多个return语句语句max(int x, int y) if (xy) return x; else return y;25若无若无return语句,遇语句,遇时自动返回时自动返回 v返值返值说明:说明:函数的定义函数的定义函数体中可以有多个函数体中可以有多个return语句语句#include stdio.hvoid printstar() printf(*n);void main() print

12、star(); printf(hello!n);26函数的定义函数的定义若无若无return语句,遇语句,遇时自动返回时自动返回 v返值返值说明:说明:函数体中可以有多个函数体中可以有多个return语句语句若函数类型与若函数类型与return语句中返回语句中返回#include stdio.hint sum(float a, float b) return a+b; void main( ) float x=3.5, y=5.2; printf(%dn,sum(x,y);值类型不一致,以函数类型为准值类型不一致,以函数类型为准27v调用形式:调用形式:函数名函数名( (实在参数实在参数列表列

13、表) );函数的调用函数的调用1.函数语句:函数语句: printstar();2.函数表达式:函数表达式:m=max(a, b)*2;3.函数参数:函数参数:m=max(a, max(b, c);v调用方式:调用方式:281.实参必须有确定值,形参必须指定类型实参必须有确定值,形参必须指定类型2.实参的个数与形参的个数必须相等实参的个数与形参的个数必须相等 v调用说明:调用说明:函数的调用函数的调用#include stdio.hmax(int x, int y) return(xy?x:y);void main() int a,b,c,d; scanf(%f,%f,%f,&a,&b ,&c

14、); printf(%d, max(a,b,c);max : function does not take 3 parameters291.实参必须有确定值,形参必须指定类型实参必须有确定值,形参必须指定类型2.实参的个数与形参的个数必须相等实参的个数与形参的个数必须相等v调用说明:调用说明:函数的调用函数的调用3.若形参与实参类型不同,按形参类型转换若形参与实参类型不同,按形参类型转换 30实参形参类型不一致示例实参形参类型不一致示例#include stdio.hmax(float x, float y) float z; z=xy?x:y; return(z);void main() i

15、nt a,b,c; a=3,b=5; c=max(a,b); printf(Max is %d,c);形形参参实实参参311.实参必须有确定值,形参必须指定类型实参必须有确定值,形参必须指定类型2.实参的个数与形参的个数必须相等实参的个数与形参的个数必须相等3.若形参与实参类型不同,按形参类型转换若形参与实参类型不同,按形参类型转换 v调用说明:调用说明:函数的调用函数的调用4.无实参函数的一对圆括号不能省略无实参函数的一对圆括号不能省略32函数的调用函数的调用#include stdio.hvoid output( ) char c; while(c=getchar( )!=n) putch

16、ar(c);void main( ) output;程序不会报错,但得不到需要结果程序不会报错,但得不到需要结果331.实参必须有确定值,形参必须指定类型实参必须有确定值,形参必须指定类型2.实参的个数与形参的个数必须相等实参的个数与形参的个数必须相等3.若形参与实参类型不同,按形参类型转换若形参与实参类型不同,按形参类型转换 4.无实参函数的一对圆括号不能省略无实参函数的一对圆括号不能省略v调用说明:调用说明:函数的调用函数的调用34v标准库函数说明标准库函数说明: : #include 函数的调用说明函数的调用说明#includetime.h #include stdio.h#includ

17、e stdlib.hvoid main( ) int x,y,answer; srand(unsigned)time(NULL); x=rand()%100+1; y=rand()%100+1; printf(%d+%d=?,x,y); scanf(%d,&answer); printf(x+y=answer?Y:N);35形式:函数类型形式:函数类型 函数名函数名(形参类型说明表形参类型说明表); 作用:编译系统作用:编译系统检验函数类型、参数个数检验函数类型、参数个数 及类型是否符合要求及类型是否符合要求v自定义函数说明自定义函数说明v标准库函数说明标准库函数说明: : #include

18、函数的调用说明函数的调用说明36#include stdio.hvoid main() float add(float x,float y); float a,b,c; scanf(%f,%f,&a,&b); c=add(a,b); printf(sum is %f,c);float add(float x, float y) float z; z=x+y; return(z);函函数数说说明明例例 自定义函数说明自定义函数说明37形式:函数类型形式:函数类型 函数名函数名(形参类型说明表形参类型说明表);作用:系统作用:系统检验函数类型、参数个数及类检验函数类型、参数个数及类 型及类型是否符

19、合要求型及类型是否符合要求v自定义函数说明自定义函数说明v注意:注意:被调用函数定义出现在主调函数之前被调用函数定义出现在主调函数之前 则不必说明则不必说明v标准库函数说明标准库函数说明: : #include 函数的调用函数的调用38#include stdio.hfloat add(float x, float y) float z; z=x+y; return(z);void main( ) float a,b,c; scanf(%f,%f,&a,&b); c=add(a,b); printf(sum is %f,c);例例 自定义函数自定义函数无需无需说明说明39 方式:方式:函数调用

20、时才为形参分配单元,并函数调用时才为形参分配单元,并 将实参的值复制到形参单元;调用将实参的值复制到形参单元;调用 结束后,形参单元即被释放,实参结束后,形参单元即被释放,实参 单元仍保留并维持原来的值单元仍保留并维持原来的值v值传递方式值传递方式1.形参与实参占用不同的内存单元形参与实参占用不同的内存单元2.单方向传递单方向传递函数的调用方式函数的调用方式 特点:特点:40temp#include swap(int a, int b) int temp; temp=a; a=b; b=temp;void main() int x=7,y=11; swap(x,y); printf(x=%d,

21、ty=%dn,x,y);11x:y:调用之前调用之前7a:b:711例例 值传递方式值传递方式函数调用函数调用7117数据交换数据交换调用结束调用结束41方式:方式:函数调用时,将数据的存储地址函数调用时,将数据的存储地址 传递给形参传递给形参特点:特点:v地址传递地址传递1.形参与实参占用同样的存储单元形参与实参占用同样的存储单元2.“双向双向”传递传递函数的调用方式函数的调用方式42例例 地址传递方式地址传递方式#include stdio.hsort(int a ,int n) int i,j,temp; for(i=0;in-1;i+) for(j=0;jaj+1) temp=aj; aj=aj+1; aj+1=temp; 43例例 地址传递方式地址传递方式void main() int i,x10; for(i=0;i10;i+) scanf(%d,&xi); sort(x,10); for(i=0;i10;i+) printf(%d ,xi);44例例 地址传递方式地址传递方式sort(int a ,int n) main() sort(x,10); .x0x1x2x9x=&x0a0a1a2a9a=&a01093685271412345678910

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号