C語言程序設計實例教程課件:數組_第1頁
C語言程序設計實例教程課件:數組_第2頁
C語言程序設計實例教程課件:數組_第3頁
C語言程序設計實例教程課件:數組_第4頁
C語言程序設計實例教程課件:數組_第5頁
已閱讀5頁,還剩68頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數組數組概述5.1一維數組5.2二維數組5.3字符數組5.45.1數組概述在程序設計中,為了處理方便,對于一批類型相同的數據,如學生成績,可以利用數組來存儲,這樣,既能從整個數組出發(fā)去處理其中的個別元素,如某一個學生的成績,也能以統一方式處理數組的一批元素或所有元素,如部分或所有學生的成績。而后一種處理方式是由一批元素構成的數組和一批獨立命名的變量之間的主要區(qū)別。5.1數組概述數組是C語言提供的一種常用的構造數據類型。數組是數目固定,類型相同的若干變量的有序集合。在程序中,主要利用數組來處理一批類型相同的數據。每個數組都有一個名字,稱為數組名。它表示內存中一塊連續(xù)的存儲區(qū)域。組成數組的變量稱為數組元素,它們可以是基本數據類型或者是構造數據類型。數組元素按順序分配在內存中一塊連續(xù)的存儲區(qū)域中,每個元素的類型相同并占用相同大小的內存單元。數組元素是一種變量,只是數組中的元素沒有獨立的變量名,而是用數組名以及元素在數組中的位置號來標識該元素。數組元素在數組中的位置號通常稱為下標,所以數組元素也稱為下標變量,并通過下標相互區(qū)分。數組可以有多個下標,下標的個數稱為數組的維數。數組按維數的多少可分為一維數組和多維數組5.2一維數組在C語言中使用數組之前必須先進行定義。數組要占用內存空間,定義時需要指定數組有多少個元素以及類型,使編譯系統可以分配相應的內存空間。數組的維數在其定義中給定。5.2.1一維數組的定義與初始化

1.一維數組定義

一般格式為:存儲類型數據類型數組名[常量表達式];存儲類型與變量聲明中的存儲類型相同。數據類型可以是所有的C語言數據類型(包括基本數據類型或構造類型)。它指明了數組的數據類型也就是該數組所有元素的數據類型,對于同一個數組,其所有元素的數據類型都是相同的。數組名是標識符。數組名后的一對方括號是必須的,它指明前面的標識符是數組名而不是普通變量名。方括號中的常量表達式表示數組元素的個數,也稱為數組的長度。要求必須是整型。

例:數組定義方式#include<stdio.h>#defineSIZE20voidmain(){intn=5;inta1[5];/*可以,整型常量*/inta2[5*2+1];/*可以,整型常量表達式*/staticdoublea3[sizeof(int)];/*可以,sizeof表達式被認為是一個整型常量*/chara4[SIZE];/*可以,符號常量*/inta5[-3];/*不可以,數組大小必須大于0*/inta6[0];/*不可以,數組大小必須大于0*/inta7[4.5];/*不可以,數組大小必須是整數*/inta8[(int)4.5];/*可以,強制轉換為整型*/inta9[n];/*C99之前不可以*/}5.2.1一維數組的定義與初始化

一旦定義了一個數組,系統將分配一塊連續(xù)內存空間來存放它的所有元素,數組元素通過數組名和下標來表示。例如有如下定義:inta[5];在上面的程序中,定義了一個自動(auto)型的整型數組a,方括號“[]”中的整型常量“5”指定該數組共有5個數組元素,分別為:a[0],a[1],a[2],a[3],a[4]。每個元素占用一個整型大小的內存空間。注意:數組元素下標從0開始計算,其它元素順序編號。2.一維數組的初始化數組初始化是指在數組定義的同時給數組元素賦予初值。數組初始化是在編譯階段進行的,這樣將減少運行時間,提高效率。數組初始化的一般格式為:存儲類型數據類型數組名[常量表達式]={值,值……值};其中在一對花括號“{}”中的各個值即為各元素的初值,各值之間用逗號間隔。2.一維數組的初始化初始化時,花括號“{}”中的初值的個數通常和數組元素的個數一致。例如:inta[5]={23,57,42,36,89};

表示定義了一個有5個數組元素的數組a,初始化列表花括號“{}”中的初值的個數也是5個。其初始化結果是將各個初值按順序賦予對應的數組元素。即a[0]=23,a[1]=57,a[2]=42,a[3]=36,a[4]=89。2.一維數組的初始化如果初始值的個數少于數組元素個數,其余的元素將被初始化為零。

例如:intb[5]={23,57,42};

表示定義了一個有5個數組元素的數組b,初始化列表花括號“{}”中的初值個數只有3個。其初始化結果是只給b[0]到b[2]前3個元素賦值,而后2個元素自動賦0值。即b[0]=23,b[1]=57,b[2]=42,b[3]=0,b[4]=0。如果初值的個數多于數組元素的個數,將產生編譯錯誤。2.一維數組的初始化如果初始化時,方括號“[]”中的常量表達式為空,即省略數組元素的個數,那么編譯器將用初始化列表花括號“{}”中初值的個數來隱式地指定數組的大小。例如:inta[]={23,57,42,36,89};則編譯器根據初始化列表中初值的個數指定數組的大小為5。如果不初始化數組,自動(auto)型的數組元素和未初始化的自動(auto)型普通變量一樣,其中存儲的是無用的數據。5.2.2一維數組元素的引用數組元素是組成數組的基本單元。對數組的引用最終都是通過對其元素的引用而實現的。數組元素可以通過數組名加上用方括號“[]”括起來的下標表達式來引用。引用數組元素一般格式為:數組名[下標表達式]其中下標表達式可以為常量、變量或表達式,要求必須為整型。下標表達式計算的結果是元素在數組中的下標。實際上,包括下標的方括號“[]”是一個C運算符,稱為下標運算符,其優(yōu)先級和結合性與圓括號“()”相同。下標表達式如果是整型常量,則可直接明確的指定要訪問的是那一個數組元素。5.2.2一維數組元素的引用下標表達式如果是變量,則可比較靈活的指定要訪問的是哪個數組元素。例如輸出數組c中所有的元素#include<stdio.h>voidmain(){intc[10]={6,-30,45,0,12,-89,2,-7,56,93};for(inti=0;i<10;i++)printf("%d\t",c[i]);printf("\n");}【例5.1】輸入10個學生的成績,要求輸出所有高于平均分的成績(用數組處理)。#include<stdio.h>#defineSIZE10voidmain(){inti;floata[SIZE],avg,sum=0;/*定義一個數組用來存放學生成績*/for(i=0;i<SIZE;i++) {scanf("%f",&a[i]);/*循環(huán)中逐個元素的輸入*/ sum=sum+a[i];/*求和*/}avg=sum/SIZE;printf("avg=%f\n",avg);

for(i=0;i<SIZE;i++) if(a[i]>avg)/*循環(huán)中依次判斷各數組元素*/printf("%.2f\t",a[i]);printf("\n");}5.2.2一維數組元素的引用在引用數組元素時要注意,如果用超出數組的合法下標范圍的表達式進行數據的訪問,會導致越界訪問的錯誤?!纠吭浇缭L問示例一#include<stdio.h>voidmain(){intc[10]={6,-30,45,0,12,-89,2,-7,56,93};printf("%d\n",c[10]);/*沒有這個數組元素*/}C編譯器不會檢查下標的合法性。如果使用了錯誤的下標,程序執(zhí)行結果是不可知的,程序或者能運行,但是運行結果可能很奇怪,也可能會中斷程序的執(zhí)行?!纠吭浇缭L問示例二#include<stdio.h>voidmain(){inta=11,b[2],c=99,i;printf("a=%d\tc=%d\n",a,c);for(i=-1;i<3;i++)b[i]=2*i;for(i=-1;i<4;i++)printf("b[%2d]=%d\n",i,b[i]);printf("a=%d\tc=%d\n",a,c);}程序中通常使用數組存儲數據,C語言不支持把數組作為一個整體來賦值,也不支持用花括號括起來的列表形式進行賦值(初始化的時候除外)。下面例子中展示了一些不允許的賦值方式?!纠繜o效的數組賦值#include<stdio.h>voidmain(){inta[10],b[10]={1,2,3,4,5};/*初始化是可以的*/a=b;/*不允許*/a={1,2,3,4,5};/*不允許*/a[10]={1,2,3,4,5};/*不允許*/}程序中要對數組賦值,只能一個一個元素地逐個賦值,通常是利用循環(huán)進行的?!纠繑到M元素賦值#include<stdio.h>voidmain(){inti,a[5],b[5]={1,2,3,4,5};for(i=0;i<5;i++)a[i]=b[i];/*循環(huán)中依次賦值*/for(i=0;i<5;i++)printf("%d\t",a[i]);printf("\n");}程序中不能用scanf()函數直接賦值給整個數組(字符數組除外)。下面例子中展示了一些不正確的用scanf()函數給數組元素賦值的方式?!纠繜o效的用scanf()函數給數組元素賦值#include<stdio.h>voidmain(){inta[10];scanf("%d%d%d%d%d%d%d%d%d%d",&a);/*不正確*/scanf("%d%d%d%d%d%d%d%d%d%d",a);/*不正確*/scanf("%d",a);/*不正確*/scanf("%d",&a);/*不正確*/

}也不能用printf()函數直接輸出整個數組(字符數組除外)。下面例子中展示了一些不正確的用printf()函數輸出數組元素的方式?!纠繜o效的用printf()函數輸出數組元素#include<stdio.h>voidmain(){inta[5]={1,2,3,4,5};printf("%d\n",a);/*不正確*/printf("%d,%d,%d,%d,%d\n",a);/*不正確*/

}程序中用scanf()函數給數組元素賦值以及用printf()函數輸出數組元素值時通常要用到循環(huán)?!纠繑到M元素的輸入輸出#include<stdio.h>voidmain(){inta[5],i;for(i=0;i<5;i++) scanf("%d",&a[i]);for(i=0;i<5;i++)

printf("%d\n",a[i]);

}5.2.3一維數組作為函數參數

數組可以作為函數的參數使用,進行數據傳送。數組用作函數參數有兩種形式,一種是把數組元素(下標變量)作為實參使用;另一種是把數組名作為函數的形參和實參使用。1.數組元素作函數實參數組元素作為函數實參使用與處理普通變量沒有什么差別,在發(fā)生函數調用時,把作為實參的數組元素的值傳送給形參,實現單向的值傳送。如果在函數中形參發(fā)生改變,對作為實參的數組元素是沒有影響的?!纠?.2】數組元素作函數實參2.數組名作為函數參數

【例5.3】數組名作為函數參數注意:數組名作為函數參函數時,形參和實參都必須是類型相同的數組。另外,為了防止越界訪問,將數組傳遞給被調函數時,通常也將其長度同時傳遞給被調函數,注意:在用數組名作函數參數時,不是把實參數組的每一個元素的值都賦予形參數組的各個元素。編譯器不為形參數組分配內存。函數調用時,形參數組名從實參數組那里取得首地址之后,也就等于有了實際的存儲空間(與實參數組共用)。5.2.4一維數組應用舉例

1.統計【例5.4】有一個學院在學生會換屆選舉中由全體學生無記名投票直選學生會主席,共有10名候選人,每個人的代號分別用1,2,3,…,10表示。每個學生填寫一張選票,若同意某名候選人則在其姓名后畫個圓圈即可(只能選一個)。編寫一個程序根據所有選票統計出每位候選人所得票數,其中每張選票上所投候選人的代號從鍵盤輸入,當輸入完所有選票后用-1作為數據輸入結束的標志。

2.排序【例5.5】已知有10個整數:24,56,8,47,63,82,27,15,90,39,編寫一個程序按照從小到大的順序輸出。第一趟j=0第二趟j=1245684763824475663i=1245684763第三趟j=2i=2248

564763824475663i=3248475663i=42484756633.查找【例5.6】已知有10個整數:22,10,44,17,31,51,89,68,120,95,從鍵盤輸入一個給定值x,在該序列中查找是否有與給定值x相等的一個數。1)順序查找2)二分查找4.插入【題目】已知有10個整數:3,6,18,28,54,68,87,105,127,162,已從小到大排好序,編寫一個程序將一給定值x插入到該序列中并保持原來的從小到大的順序不變。給定值x從鍵盤輸入。思考題:5.3二維數組5.3.1二維數組的定義與初始化1.二維數組的定義二維數組定義的一般格式是:存儲類型數據類型數組名[整型表達式1][整型表達式2]二維數組定義的要求和一維數組定義的一樣,只是多了一對方括號“[]”極其整型表達式。其中整型表達式1表示第一維(行)的長度,整型表達式2表示第二維(列)的長度?!纠慷S數組定義#include<stdio.h>voidmain(){inta[3][4];introw=2,col=3;doubleb[row][col];/*變長數組,C99之前不可以*/}假設第一維(行)的長度為m,第二維(列)的長度為n,則整個數組的元素個數為m×n個。二維數組的數組元素用數組名和兩個下標表示,則數組元素行下標的取值范圍是0~m-1之間的m個整數,列下標的取值范圍是0~n-1之間的n個整數。例如,上面程序中定義的二維數組a,共有3×4=12個數組元素,行下標的取值范圍是0~2;列下標的取值范圍是0~3。2.二維數組的初始化1)按行分組賦值將初值分別用花括號“{}”

括起來進行按行分組,例如:【例】按行分組初始化#include<stdio.h>voidmain(){inta[2][3]={{80,75,92},{61,65,71}};}2)按行連續(xù)賦值初值之間沒有用花括號“{}”按行分組,只有最外面的一對花括號“{}”。例如:【例】按行連續(xù)初始化#include<stdio.h>voidmain(){inta[2][3]={80,75,92,61,65,71};}系統將自動用初值按順序一行一行初始化各數組元素。5.3

.2二維數組數組元素的引用

二維數組的元素也稱為雙下標變量,其表示使用的格式為:數組名[下標表達式][下標表達式]其中下標表達式可以為常量、變量或表達式,要求必須為整型。對行下標和列下標都要進行運算來唯一指定二維數組中的一個元素使用二維數組的元素同使用一維數組的元素和普通變量一樣,既可以用它存儲數據,又可以取出它的值參與運算。【例】引用數組元素時兩個下標都為整型常量#include<stdio.h>voidmain(){inta[3][4]={{20,51,-64,8},{42,97,33,84},{102,76,12,9}};printf("%d\n",a[0][1]);}【例】引用數組元素時行下標為整型常量,下列標為整型變量#include<stdio.h>voidmain(){inta[3][4]={{20,51,-64,8},{42,97,33,84},{102,76,12,9}};intcolumn;for(column=0;column<4;column++)a[1][column]*=2;for(column=0;column<4;column++)printf("%d\t",a[1][column]);printf("\n");}【例】引用數組元素時兩個下標都為變量#include<stdio.h>voidmain(){inta[3][4]={{20,51,-64,8},{42,97,33,84},{102,76,12,9}};inttotal=0,row,column;for(row=0;row<3;row++)for(column=0;column<4;column++)total+=a[row][column];printf("%d\n",total);}5.3.3二維數組應用舉例【例5.7】有下列一個3×4的矩陣,要求編寫程序輸出其中值最大的那個元素,以及其所在的行號和列號。12-349876-1016-52【例5.8】一個小組有5位學生,每個人有三門課程的考試成績,如下表所示。編寫一個程序計算全組學生的各門課程的分科平均成績和總平均成績。

課程成績姓名語文數學英語張三807592王五616571李四536370趙一858790周六7677855.4字符數組5.4.1字符串與字符數組字符串是一個或多個字符的序列。下面是一個字符串的例子:"Howareyou"這里雙引號“”不是字符串的一部分。他們只是通知編譯器其中包含了一個字符串。C語言中沒有為字符串定義專門的變量類型,而是把它存儲在字符數組中。雙引號中的字符加上編譯器自動添加的結束符‘\0’,作為一個字符串被存儲在相鄰的內存單元中,每個字符占用一個單元。字符數組就是數據類型為字符型的數組,每個元素可以用來存放一個字符。如果字符數組包含了空字符‘\0’,那么字符數組的內容就構成一個字符串,其中空字符‘\0’標志著字符串的結尾。但如果字符數組中沒有空字符‘\0’,則不能表示一個字符串。

5.4.2字符數組的定義與初始化

1.字符數組定義

字符數組定義形式與其它類型數組相同。例如,下面定義了一個有10個元素的字符數組c(其中每個數組元素中可以存放一個字符):【例】字符數組定義#include<stdio.h>voidmain(){charc[10];}字符數組也可以是二維或多維數組。例如,下面定義了一個5行10列的二維字符數組:【例】二維字符數組定義#include<stdio.h>voidmain(){chard[5][10];}2.字符數組初始化

字符數組也允許在定義時作初始化賦值。【例】字符數組初始化#include<stdio.h>voidmain(){charstr1[10]={‘p’,‘r’,‘o’,‘g’,‘r’,‘a’,’m’};}當對全體元素賦初值時也可以省去長度說明。例如:【例】省去長度說明的字符數組初始化#include<stdio.h>voidmain(){charstr2[]={‘p’,‘r’,‘o’,‘g’,‘r’,‘a’,’m’};}【例】用字符串常量進行初始化#include<stdio.h>voidmain(){charstr4[50]="Youcanseeit.";}當然,進行初始化時如果省略數組大小,讓編譯器決定數組大小是很方便的。例如:【例】用字符串常量進行初始化時省略數組大小#include<stdio.h>voidmain(){charstr5[]="program";}5.4.3字符數組的引用

字符數組的引用和其他類型數組一樣,通過數組名加上用方括號“[]”括起來的下標表達式來引用數組中的各個元素?!纠?.9】字符數組中各元素的訪問#include<stdio.h>voidmain(){inti=0;charstr[]="program";while(str[i]!='\0')//判斷字符串是否結束

{str[i]=str[i]-32;//小寫字母轉化為大寫

printf("%c",str[i]);//單個元素(字符)輸出

i++;}printf("\n");}5.4.4字符串輸出和輸入

1.字符串輸出(1)printf()函數在程序中還可以使用帶%s格式控制符的printf()函數,輸出一個字符串,但需要一個字符串地址如字符數組名作為對應的輸出項?!纠縫rintf()函數帶%s格式控制符輸出#include<stdio.h>voidmain(){ charstring[]="stringliteral";printf("%s\n",string);//字符數組名作為輸出項

printf("%s\n",&string[3]);//數組元素的地址作為輸出項}(2)puts()函數使用puts()函數輸出字符串,只需要給出字符串地址作為參數?!纠縫uts()函數示例#include<stdio.h>voidmain(){charstring[]="stringliteral";puts("Thisisanexample");//字符串常量作為參數puts(string);//字符數組名作為參數

puts(&string[3]);//數組元素的地址作為參數}puts()函數和printf()函數都可以用于輸出字符串,例如,下面兩條語句效果一樣。printf("%s\n",string);puts(string);printf()函數與puts()函數主要區(qū)別在于:printf()函數并不會自動添加換行符而在新行上輸出每個字符串。使用printf()函數時,必須明確指出需要另起一行的位置,并添加換行符‘\n’

進行換行。所以printf()函數使用起來沒有puts()函數方便,需要鍵入更多的代碼,不過用printf()函數可以很簡單的在一行上輸出多個字符串。2.字符串輸入

要把一個字符串讀到程序中,必須首先預留存儲字符串的空間,然后使用輸入函數來獲取這個字符串。最簡單的方法是定義一個足夠大小的字符數組,用來存放該字符串。(1)scanf()函數使用帶%s格式控制符scanf()函數可以用來讀入一個字符串?!纠縮canf()函數帶%s格式控制符輸入#include<stdio.h>voidmain(){charname[51];printf("What'syourname?\n");scanf("%s",name);printf("Nicename,%s.\n",name);}scanf()函數開始讀取輸入后,會在遇到的第一個空白字符:空格(blank)、制表符(tab)或換行符(newline)處停止讀取。因此,使用%s的scanf()函數只會把一個單詞而不是把整個語句作為字符串讀入。(2)gets()函數使用gets()函數可以從系統的標準設備(通常是鍵盤)獲取一個字符串。因為字符串沒有預定的長度,所以gets()函數需要知道輸入何時結束。解決方法是讀字符串直到遇到一個換行符(newline),按回車鍵可以產生這個字符。gets()函數將讀取換行符之前(不包括換行符)的所有字符,并在這些字符后添加一個空字符‘\0’。然后把這個字符串交給調用它的程序。gets()函數會將讀取的換行符丟棄,這樣下一次讀取就會在新的一行開始?!纠縢ets()函數示例#include<stdio.h>voidmain(){charname[51];printf("What'syourname?\n");gets(name);printf("Nicename,%s.\n",name);}scanf()函數和gets()函數主要區(qū)別在于如何決定字符串何時結束。scanf()函數遇到的第一個空白字符(空格、制表符或換行符)停止讀取。gets()函數在遇到的第一個換行符停止讀取。scanf()函數更基于獲取單詞而不是獲取字符串。5.4.5字符數組應用舉例

【例5.10】編寫一個程序,實現從鍵盤上輸入一個字符串,將該字符串中的小寫字母變?yōu)榇髮懽帜?,而其它字符保持不變。分?先定義一個足夠大小的字符數組str,存放從鍵盤上輸入一個字符串。從該字符數組第一元素str[0](存放著字符串第一個字符)開始,每個數組元素逐一(即字符)判斷,看是否為小寫字母,如果是就進行轉換。如果不是則不變,直到該字符串結束【例5.11】“回文”是從前向后和從后向前讀起來都一樣的句子。例如英文中的:“l(fā)evel”、“radar”等。編寫一個程序判斷一個字符串是否為一個“回文”。分析:先用字符串的第一個字符和最后一個字符進行比較看是否相等,如果相等就繼續(xù)比較第二個字符和倒數第二個字符,以此類推。比較過程中只要有一次比較不相等,則可判斷不是“回文”,如果比較到最中間的字符時都相等則可以判斷是“回文”。5.4.6字符串處理函數

由于字符串的使用非常廣泛,C標準庫提供了許多專門處理字符串的函數(參見附錄C),這些函數的原型在頭文件“string.h”里說明。要使用標準字符串處理函數時,程序前部應寫:#include<string.h>1.求字符串長度函數strlen()函數原型:intstrlen(constchars[])本函數的功能是求出字符串的長度,也就是字符串里的字符個數。在計算字符個數時不計表示字符串結束的空字符‘\0’。該函數只有一個類型為字符的數組參數,參數前面使用了關鍵字const表示該參數的內容在函數執(zhí)行中是不允許改變的。該函數對應的實參可以是任何形式的字符串,如一個字符串常量、一個一維字符數組等。函數的返回值是求出的字符串長度?!纠壳笞址L度函數示例#include<string.h>#include<stdio.h>voidmain(){chara[10]="",b[]="a",c[20]="StringLength";printf("alengthis:%d\n",strlen(a));//調用字符串長度函數

printf("blengthis:%d\n",strlen(b));printf("clengthis:%d\n",strlen(c));printf("constantlengthis:%d\n",strlen("constant"));}2.字符串復制函數strcpy()函數原型:char*strcpy(char*dest,constchar*src)本函數的功能是把第二個參數src所指字符串復制到第一個參數dest所指的存儲空間(即dest字符數組)中。該函數有兩個字符指針參數,因為每個字符指針是指向相應字符串的首地址。而字符數組名就是所在字符串的首地址。所以字符數組名也就是一個字符指針。字符指針參數說明同字符數組參數說明是等價的,既該函數的兩個參數說明同chardest[]和constcharsrc[]是等價的。參數dest或src都能接受由實參傳遞來的一個字符指針,既一個字符串存儲空間的首地址。因為該函數只需要從第二個參數src字符串中讀取內容,不需要修改它,所以用const修飾,而對于第一個參數dest,需要修改它的內容,所以就不能用const修飾。函數的返回值是一個字符指針,即dest字符數組的首地址。dest應是一個足夠大的字符數組,以保證字符串復制不越界。

【例】字符串復制函數示例#include<string.h>#include<stdio.h>voidmain(){chara[10],b[10]="strcopy",c[20];strcpy(a,b);//調用字符串復制函數

strcpy(c,"constant");printf("a=%s\tb=%s\t",a,b);printf("c=%s\n",c);}1.字符串比較函數strcmp()函數原型:intstrcmp(constchar*s1,constchar*s2)本函數的功能是比較s1所指字符串與s2所指字符串的大小,若字符串s1大于字符串s2時返回一個大于0的值(C標準沒有規(guī)定采用什么值);若兩個字符串s1和s2相同時返回0;若字符串s1小于字符串s2時返回一個小于0的值。判斷字符串大小的標準是字典序(普通英語詞典里排列單詞詞條時所用的順序)。該函數有兩個字符指針參數,各自指向相應的字符串。函數的返回值為整型。

【例】字符串復制函數示例#include<string.h>#include<stdio.h>voidmain(){chara[10]="int",b[10]="double",c[20]="float";printf("%d\n",strcmp(a,b));//調用字符串復制函數

printf("%d\n",strcmp(b,c));printf("%d\n",strcmp("int",a));}4.字符串連接函數strcat()函數原型:char*strcat(char*dest,constchar*src)。本函數的功能是把第二個參數src所指字符串復制到第一個參數dest所指字符串中已有字符的后面,形成相當于兩個串連在一起的字符串。這里要求dest所指字符串之后有足夠大的存儲空間用于存儲src串。該函數有兩個字符指針參數,各自指向相應的字符串。函數的返回值為dest的指針?!纠孔址B接函數示例#include<string.h>#include<stdio.h>

voidmain(){charb1[40]="Programming",b2[10]="C";strcat(b1,"language");

溫馨提示

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

評論

0/150

提交評論