第6章函数-Tx-_第1页
第6章函数-Tx-_第2页
第6章函数-Tx-_第3页
第6章函数-Tx-_第4页
第6章函数-Tx-_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

1、void main( )float a,b,c,d;scanf(%f%f,&a,&b);c=func(a,b); / /* * 第一次调用用户函数第一次调用用户函数funcfunc( ) ( ) * */ /d=func(c,b); / /* * 第二次调用用户函数第二次调用用户函数funcfunc( ) ( ) * */ /printf(%f,%fn, c, d);类型标识符类型标识符 函数名(形式参数表)函数名(形式参数表)形式参数说明;形式参数说明; 函数体变量说明语句;函数体变量说明语句;函数体可执行语句函数体可执行语句 前面示例的方式前面示例的方式该方式已过时该方式已

2、过时什么是函数?什么是函数?main( ) /*可省略函数声明可省略函数声明*/ max(a1,b1 ); /*函数调用函数调用*/int max(int a,int b)if(ab) return a;elsereturn b;fl(int x,int *y,int *z) x*=2;*y=*y+x;*z=x+*y;printf (%d,%d,%dn,x,*y,*z);#include func6 ( char str ) printf (%s,str);#include #include #define N 5void main() char strN40; int p=0,i; prin

3、tf(nPlease input %d string:n ,N); for(i=0;iN;i+) gets(stri);maxstr(str,&p);printf(nstrlen=%d,str=%s,p,strp);char *ch(char *str1,char *str2) int i; char *p;p=str2;if(*str2=NULL) exit(-1); do *str2=*str1; str1+; str2+; while(*str1!=NULL); return(p);可执行可执行文件名文件名参数参数1.1.用字符串输入函数用字符串输入函数getsgets实现输入实

4、现输入 : : 字符串输入输出函数的函数原型在头文件“stdio.h”中被说明,调用该函数时,应在程序中加入文件包含命令: #includestdio.h v函数功能:从键盘输入一以回车结束的字符串放入字符数组中,并自动加0v调用形式:gets(字符数组);v举例: char a10; gets(a); printf( %s ,a);字符串处理函数字符串处理函数v函数功能:向显示器输出字符串(输出完,换行)v调用形式:puts(字符串/字符数组);v应用举例: char a10; gets(a); puts(a);【例】将字符串s1从第m个字符开始剩余的所有字符,送入字符数组s2中。#incl

5、ude stdio.hvoid main()int i,j,m; char s180,s280; printf(input a string:n); gets(s1); printf(input start point:n); scanf(%d,&m); i=m-1; j=0; while(s1i!=0) s2j=s1i; i+;j+; s2j=0; puts(s2);3.3.计算字符串长度的函数计算字符串长度的函数strlenstrlen( (字符数组字符数组) )函数功能:求出字符串或字符数组中实际字符个数 (不包括0)。 #include stdio.h#include stri

6、ng.hvoid main() char str=“Hello World!”;puts(str);printf(%d,strlen(str);运行结果:运行结果:Hello World!12 6. 6. 字符串比较函数字符串比较函数strcmpstrcmp( (字符串字符串1 1,字符串,字符串2)2) v函数功能: 从左到右逐个比较两个字符串s1、s2中各个字符(用字符的ASCII码比较),直到出现不同字符或遇到结束标记为止。v 函数返回值: 函数值=0 当串1=串2负整数 当串1串2v 函数应用举例: 说明:说明:字符串比较不能用字符串比较不能用“=“= =”,=”,必须用必须用strc

7、mpstrcmp【例例】 身份验证,通过比较两个身份验证,通过比较两个IDID确定确定IDID的的正确与错误。正确与错误。#include#includevoid main()char s27,s17=“100101”;printf(“please enter ID:n”);gets(s2);if(strcmp(s1,s2)=0)printf(“ID is right!”);elseprintf(“ID is wrong!”);运行结果:please enter ID:456789ID is wrong!7.7.字符串连接函数字符串连接函数strcatstrcat( (字符数组字符数组1 1,

8、字符数组,字符数组2)2)v函数功能函数功能: 连接两个字符数组中的字符串,把字符串连接两个字符数组中的字符串,把字符串2 2接到字符串接到字符串1 1后面,结果放在字符数组后面,结果放在字符数组1 1中,调用函数后得到的函数值是中,调用函数后得到的函数值是字符数组字符数组1 1的地址。的地址。v函数说明函数说明: 1 1)字符数组必须有足够的长度以便容纳。)字符数组必须有足够的长度以便容纳。 2 2)如果两个字符串后都有)如果两个字符串后都有0,0,只在新串保留一个。只在新串保留一个。执行后a数组如下:8.8.字符串拷贝函数字符串拷贝函数strcpystrcpy( (字符数组字符数组1 1,

9、字符数组,字符数组2) 2) 例 char str120,str220; str1 = “Hello!”; () str2 = str1; () strcpy( str2, str1 ); () 不能使用赋值语不能使用赋值语句为一个字符数组句为一个字符数组赋值赋值v 函数应用举例:a数组内存原始情况:函数调用后a、b数组内存情况:【例例】分析下面程序的运行结果。分析下面程序的运行结果。 #include conio.h#include string.h#include stdio.hvoid main() char c110=abcdefghi,c2 =china; strcpy(c1,c2)

10、; puts(c1); printf(%c,c17);【例例】 从键盘输入三个字符串,编程找出其中最小者。从键盘输入三个字符串,编程找出其中最小者。 #include #include void main()int i;char s1310,s210;printf(Input 3 Strings:n);for(i=0;i0)strcpy(s2,s11 );elsestrcpy(s2,s10 );if (strcmp(s2,s12 )0)strcpy(s2,s12 );printf(The leaf string is:%sn,s2); 【例例】 编写字符串连接函数编写字符串连接函数strcat

11、lstrcatl() () #include char *strcatl(char *s1,char *s2) char *p;p=s1;while(*p+);p-;while(*p+=*s2+);return(s1);void main()char p115=string1,*p2=string2;printf (%sn,strcatl(p1,p2) );例例 #define S #define S (r) PI(r) PI* *r r* *r r相当于定义了不带参宏相当于定义了不带参宏S,S,代表字符串代表字符串“(“(r) PIr) PI* *r r* *r”r” 例例 #define S(a,b) a#define S(a,b) a* *b b . area = S(3,2); area = S(3,2);宏展开:宏展开: area = 3area = 3* *2;2;不能加空格不能加空格【例例】带参数的宏替换带参数的宏替换 #include “fi

温馨提示

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

评论

0/150

提交评论