C++程序设计:第10章 常用字符串处理函数_第1页
C++程序设计:第10章 常用字符串处理函数_第2页
C++程序设计:第10章 常用字符串处理函数_第3页
C++程序设计:第10章 常用字符串处理函数_第4页
C++程序设计:第10章 常用字符串处理函数_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

4、=(b*b+c*c)/b- (b*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);

5、cal(b,c); cal(b,d); cal(c,d);000000000010v函数的概念函数的概念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函数的概念函数的概念模块化程序设计模块化程序设计函数式程序结构函数式程序结构三种类型的函数三种类型的函

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

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

9、xy?x:y; return(z); max(int x, int y)函数类型函数类型 函数名函数名(形参形参类型说明表类型说明表)说明部分说明部分 语句部分语句部分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返值形式:返值形式:retur

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

12、dio.hvoid printstar() printf(*n);void main() printstar(); 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);值类型不一致,以函数类

13、型为准值类型不一致,以函数类型为准27v调用形式:调用形式:函数名函数名( (实在参数实在参数列表列表) );函数的调用函数的调用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

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

15、tdio.hmax(float x, float y) float z; z=xy?x:y; return(z);void main() int a,b,c; a=3,b=5; c=max(a,b); printf(Max is %d,c);形形参参实实参参311. 实参必须有确定值,形参必须指定类型实参必须有确定值,形参必须指定类型2. 实参的个数与形参的个数必须相等实参的个数与形参的个数必须相等3. 若形参与实参类型不同,按形参类型转换若形参与实参类型不同,按形参类型转换 v调用说明:调用说明:函数的调用函数的调用4. 无实参函数的一对圆括号不能省略无实参函数的一对圆括号不能省略32函数的

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

17、准库函数说明标准库函数说明: : #include 函数的调用说明函数的调用说明#includetime.h #include stdio.h#include 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形式:函数类型形式:函数类型 函数名函数名(形参类型说明表形参类型说明表); 作用:编译系统作用:编译系统检验

18、函数类型、参数个数检验函数类型、参数个数 及类型是否符合要求及类型是否符合要求v自定义函数说明自定义函数说明v标准库函数说明标准库函数说明: : #include 函数的调用说明函数的调用说明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);函函数数说说明明例例 自定义函数说明自

19、定义函数说明37形式:函数类型形式:函数类型 函数名函数名(形参类型说明表形参类型说明表);作用:系统作用:系统检验函数类型、参数个数及类检验函数类型、参数个数及类 型及类型是否符合要求型及类型是否符合要求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 方式:方式:函数调用时才为形参分配单元,并函数调用时才为形参分配单元,并 将实参的值复制到形参单元;调用将实参的值复制到形参单元;调用 结束后,形参单元即被释放,实参结束后,形参单元即被释放,实参 单元仍保留并维持原来的值单元仍保留并维持原来的值v值传递方式值传递方式1. 形参与实参占用不同的内存单元形参与实参占用不同的内存单元2. 单方向传递单方向传递函数的调用方式函数的调用方式 特点:特点:40t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论