嵌入式C編程01數組與字符串_第1頁
嵌入式C編程01數組與字符串_第2頁
嵌入式C編程01數組與字符串_第3頁
嵌入式C編程01數組與字符串_第4頁
嵌入式C編程01數組與字符串_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數組與字符串嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第1頁!課程安排什么是數據的組合數組與維度字符數組與字符串常用字符串處理函數嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第2頁!程序=數據(組合)+語句(組合)學習了C基本數據類型!學習了各種表達式語句! 學習了語句組合流程:流程控制!

那么在C語言里,數據是如何組合的?

從回顧開始嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第3頁!相同類型數據組合數組字符串枚舉不同類型數據組合結構聯(lián)合C組合數據類型嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第4頁!數組變量定義//類型數組名[數組元素個數]

intscore[3];//學生的3門功課成績定義&初始化 intscore[3]={0};intscore[3]={80,90,70};

intscore[]={80,90,70};//好處是可以根據初始化需要擴展元素個數數組元素通過下標逐個引用

for(i=0;i<3;i++) printf(“第%d科成績是%d”,i,score[i]);數組越界會怎么樣?

score[3]=100;score[4]=95;數組概念1嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第5頁!數組大小

size=sizeof(score); //等于每個元素大小的總和

size=sizeof(int)*3;數組元素個數intscore[]={80,90,70};cnt=sizeof(score)/sizeof(int);

//求數組元素個數的通用方法

cnt=sizeof(score)/sizeof(score[0])

數組概念3嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第6頁!二維數組元素引用 for(i=0;i<2;i++) { for(j=0;j<3;j++) { printf(“第%d個人的第%d科成績是%d\n”,i,j,score[i][j]); }}

二維數組1嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第7頁!二維數組地址 二維數組的內存空間也是連續(xù)的:下一行首地址緊接上一行尾地址

printf(“scoreis%p\n”,score);//二維數組首地址 printf(“score[0]is%p\n”,score[0]);//二維數組行首地址 printf(“score[1]is%p\n”,score[1]);//二維數組第二行首地址 printf(“&score[0][0]is%p\n”,&score[0][0]);//個元素地址 printf(“&score[1][0]is%p\n”,&score[1][0]);//第二行個元素地址

二維數組3嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第8頁!課程安排什么是數據的組合數組與維度字符數組與字符串常用字符串處理函數嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第9頁!一個一個字符初始化太笨拙了!charname[]={‘x’,‘n’,‘f’};能不能一串名字初始化進去?

charname2[]={“xnf”};為name2分配了多少內存空間?注意:多了一個字符串結束符‘\0’!

字符數組初始化嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第10頁!用“”包含起來的字符的集合 如:”xnf”字符串是一個常量字符串默認以字符串結束符’\0’結束‘\0’的ascii編碼是多少?=>0!字符串可以為字符型數組變量初始化,將每個字符ascii碼值保存到字符數組變量中

什么是字符串?嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第11頁!課程安排什么是數據的組合數組與維度字符數組與字符串常用字符串處理函數嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第12頁!charstr1[20]={0};charstr2[20]={0};str1=“hello”;?str2=“world”;?str1=str2;?str1+str2;?字符串數組可以在初始化時賦值在其他位置賦值需要通過字符串拷貝strcpy和字符串連接strcat函數!strcpy要注意避免數組越界問題,更安全的做法是strncpy!

字符串拷貝與連接嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第13頁!如何將“100”轉換成數值100?charstr[]={“100”};intnum=0;num=atoi(str);如何將數組100轉換成字符串“100”?charstr[5]={0};intnum=100;sprintf(str,“%d”,100);

數值字符串與數值轉換嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第14頁!課程安排什么是數據的組合數組與維度字符數組與字符串常用字符串處理函數嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第15頁!數組變量占用的內存空間

//數組名代表數組首地址printf("scoreis%x\n",score);printf("scoreis%p\n",score);

//數組元素地址,數組的內存空間是連續(xù)的 printf("scoreis%p\n",score); printf("scoreis%p\n",&score[0]); printf("scoreis%p\n",&score[1]); printf("scoreis%p\n",&score[2]);數組類型數組的類型即是數組元素的類型 數組元素具備相同數據類型,在數組變量定義時指定數組概念2嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第16頁!數組維度//定義二維數組 intscore[2][3]=//兩個學生各自的三門功課成績 { {80,90,70}, {75,65,55} };

可以理解為score是2個元素的數組,每個元素又是包含3個元素的數組可以定義多維數組變量,但一般情況下用到二維已經足夠了!

數組概念4嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第17頁!二維數組定義&初始化 intscore[][3]=//好處是可以根據初始化需要擴展元素個數 { {1,2,3}, {4,5,6}, {7,8,9}, {10,11,12}, };二維數組大小與元素個數

size=sizeof(score);

cnt=sizeof(score)/sizeof(score[0][0]);size=sizeof(int)*cnt//數組大小等于每個元素大小總和

二維數組2嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第18頁!用數組保存數據,可以做到快速定位(通過下標)如:學生的第2門功課成績:score[1]如:第2個學生的第3門功課成績:score[1][2]但要尋找某個特定數值的元素,就沒那么方便了(需要輪詢)!某個學生中不及格的功課?所有學生的所有科目中,不及格的功課?

數組使用實例嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第19頁!如何把你的名字保存在數組中 //需要用到字符型數組

//順序將名字中的每個字符保存到數組元素中charname1[]={‘x’,‘n’,‘f’};

為name1分配了多少內存空間?

什么是字符數組嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第20頁!能夠為整個數組賦值嗎?

charname[4];name=“xnf”;?只能為數組元素賦值

charname[3];name[0]=‘x’;name[1]=‘n’;name[2]=‘f’所以還是把賦值放在定義&初始化時吧

charname[]={“xnf”};

字符數組賦值嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第21頁!將班級所有學生的姓名保存在一個字符數組中?

實例嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第22頁!charstr[10]={0};//從控制臺輸入字符串scanf(“%s”,&str);gets(str);fgets(str,sizeof(str),stdin);//最安全的方式,避免數組越界//輸出字符串到控制臺printf(“%s”,str);printf(“stris%s”,str);puts(str);

字符串輸入與輸出嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第23頁!charstr1[]={“hello”};str1的長度是多少?str1的內存大小是多少charstr2[]={“heLlo”};str1與str2一樣么?如何比較通過sizeof運算符判斷字符串占用的內存大小通過strlen函數獲取字符串長度,通過strcmp函數比較字符串大小注意:1、strcmp是逐個將2個字符串中的字符ASCII碼值逐個比較,全部字符值相同則字符串相等;通常用于用戶名、密碼登陸等認證場合。

字符串長度與比較嵌入式C編程01數組與字符串共25頁,您現(xiàn)在瀏覽的是第24頁!上機實驗1、學生張三的5門功課成績?yōu)閯e為80、71、55、93、40,請將他的成績保存在數組中,并將不及格的成績找到并打印出來2、學生張三的5門功課成績?yōu)閯e為80、71、55、93、40;李四的5門功課

溫馨提示

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

評論

0/150

提交評論