第6章函數(shù)-Tx-_第1頁
第6章函數(shù)-Tx-_第2頁
第6章函數(shù)-Tx-_第3頁
第6章函數(shù)-Tx-_第4頁
第6章函數(shù)-Tx-_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、void main( )float a,b,c,d;scanf(%f%f,&a,&b);c=func(a,b); / /* * 第一次調(diào)用用戶函數(shù)第一次調(diào)用用戶函數(shù)funcfunc( ) ( ) * */ /d=func(c,b); / /* * 第二次調(diào)用用戶函數(shù)第二次調(diào)用用戶函數(shù)funcfunc( ) ( ) * */ /printf(%f,%fn, c, d);類型標識符類型標識符 函數(shù)名(形式參數(shù)表)函數(shù)名(形式參數(shù)表)形式參數(shù)說明;形式參數(shù)說明; 函數(shù)體變量說明語句;函數(shù)體變量說明語句;函數(shù)體可執(zhí)行語句函數(shù)體可執(zhí)行語句 前面示例的方式前面示例的方式該方式已過時該方式已

2、過時什么是函數(shù)?什么是函數(shù)?main( ) /*可省略函數(shù)聲明可省略函數(shù)聲明*/ max(a1,b1 ); /*函數(shù)調(diào)用函數(shù)調(diào)用*/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);可執(zhí)行可執(zhí)行文件名文件名參數(shù)參數(shù)1.1.用字符串輸入函數(shù)用字符串輸入函數(shù)getsgets實現(xiàn)輸入實

4、現(xiàn)輸入 : : 字符串輸入輸出函數(shù)的函數(shù)原型在頭文件“stdio.h”中被說明,調(diào)用該函數(shù)時,應在程序中加入文件包含命令: #includestdio.h v函數(shù)功能:從鍵盤輸入一以回車結(jié)束的字符串放入字符數(shù)組中,并自動加0v調(diào)用形式:gets(字符數(shù)組);v舉例: char a10; gets(a); printf( %s ,a);字符串處理函數(shù)字符串處理函數(shù)v函數(shù)功能:向顯示器輸出字符串(輸出完,換行)v調(diào)用形式:puts(字符串/字符數(shù)組);v應用舉例: char a10; gets(a); puts(a);【例】將字符串s1從第m個字符開始剩余的所有字符,送入字符數(shù)組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.計算字符串長度的函數(shù)計算字符串長度的函數(shù)strlenstrlen( (字符數(shù)組字符數(shù)組) )函數(shù)功能:求出字符串或字符數(shù)組中實際字符個數(shù) (不包括0)。 #include stdio.h#include stri

6、ng.hvoid main() char str=“Hello World!”;puts(str);printf(%d,strlen(str);運行結(jié)果:運行結(jié)果:Hello World!12 6. 6. 字符串比較函數(shù)字符串比較函數(shù)strcmpstrcmp( (字符串字符串1 1,字符串,字符串2)2) v函數(shù)功能: 從左到右逐個比較兩個字符串s1、s2中各個字符(用字符的ASCII碼比較),直到出現(xiàn)不同字符或遇到結(jié)束標記為止。v 函數(shù)返回值: 函數(shù)值=0 當串1=串2負整數(shù) 當串1串2v 函數(shù)應用舉例: 說明:說明:字符串比較不能用字符串比較不能用“=“= =”,=”,必須用必須用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!”);運行結(jié)果:please enter ID:456789ID is wrong!7.7.字符串連接函數(shù)字符串連接函數(shù)strcatstrcat( (字符數(shù)組字符數(shù)組1 1,

8、字符數(shù)組,字符數(shù)組2)2)v函數(shù)功能函數(shù)功能: 連接兩個字符數(shù)組中的字符串,把字符串連接兩個字符數(shù)組中的字符串,把字符串2 2接到字符串接到字符串1 1后面,結(jié)果放在字符數(shù)組后面,結(jié)果放在字符數(shù)組1 1中,調(diào)用函數(shù)后得到的函數(shù)值是中,調(diào)用函數(shù)后得到的函數(shù)值是字符數(shù)組字符數(shù)組1 1的地址。的地址。v函數(shù)說明函數(shù)說明: 1 1)字符數(shù)組必須有足夠的長度以便容納。)字符數(shù)組必須有足夠的長度以便容納。 2 2)如果兩個字符串后都有)如果兩個字符串后都有0,0,只在新串保留一個。只在新串保留一個。執(zhí)行后a數(shù)組如下:8.8.字符串拷貝函數(shù)字符串拷貝函數(shù)strcpystrcpy( (字符數(shù)組字符數(shù)組1 1,

9、字符數(shù)組,字符數(shù)組2) 2) 例 char str120,str220; str1 = “Hello!”; () str2 = str1; () strcpy( str2, str1 ); () 不能使用賦值語不能使用賦值語句為一個字符數(shù)組句為一個字符數(shù)組賦值賦值v 函數(shù)應用舉例:a數(shù)組內(nèi)存原始情況:函數(shù)調(diào)用后a、b數(shù)組內(nèi)存情況:【例例】分析下面程序的運行結(jié)果。分析下面程序的運行結(jié)果。 #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); 【例例】 編寫字符串連接函數(shù)編寫字符串連接函數(shù)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;不能加空格不能加空格【例例】帶參數(shù)的宏替換帶參數(shù)的宏替換 #include “fi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論