這次我們主要討論c中字元陣列的用法,字元陣列在我看來是陣列裡較難得一部分,下面我們來共同研究一下。
字元陣列的定義:一定是 char 型別,後面的是能儲存的字元個數
在定義的同時可以初始化,也可以在使用的時候逐個初始化。
定義時初始化 char str[10]=;
char s1[20]=;
char s1[20]=「how do you do」;
逐個元素賦值 str[0]=『c』;str[1]=h』;str[2]=『n』;str[3]=『i』;str[4]=『a』;
例題
james大學要舉辦校慶,在歷屆校友中尋找名字為james的校友。
要求:用二維的字元陣列儲存所有會員姓名,然後依次查詢姓名中含有james的人,列印全名。
**程式思想:*假設每個人的名字長度都不超過20,這樣我們可以根據james的長度len值是5,然後我們可以對所有人的姓名依次判斷,他名字的前五個元素是不是和james相同,如果相同就說明這個校友的名字是james,否則就不是,可以根據這個思想,寫出程式**。
#include
#include`
#include
int main()
;char james=「james」;
int i,j,len=strlen(「james」);
for (i=0;i字元陣列的輸入和輸出
1.單個字元的輸入輸出
char str[10];
for(i=0;i<5;i++)
scanf("%c",&str[i]);
for(i=4;i>=0;i–)
printf("%c",str[i]);
2.字串整體的輸入輸出
char str[10];
scanf("%s",str) //陣列名str是陣列的起始位址,所以不用&str
3.gets 函式
一般形式為
gets(字元陣列名)
作用是從終端輸入乙個字串到字元陣列
gets(word) 用於鍵盤輸入乙個字串,儲存到word陣列當中,該字串由換行符(\n)以前的所有字元組成,系統也會自動為這個字元加上「|0」結束標
注意:gets中空格也作為輸入字元的一部分,,而在scanf中,空格或者回車用來分隔多個字串
4.puts函式
格式為 puts(字元陣列名);
其作用是將乙個字串輸出到終端,並在輸出時將字串結束標『\0』轉換成「\n『,即輸出完字串後換行
char word=「abc」,word1=「def」
puts(word);
puts(word1);
輸出結果後可發現這兩個字串自動換行
字串處理函式
1.字串連線函式strcat
呼叫形式:
strcat(字元陣列1,字元陣列2):
功能是將字元陣列2連線於字元陣列1的後面
注意:字元陣列1的空間不僅要能夠儲存本身資料,也要能夠儲存字元陣列2中的資料,不然就會發生鏈結錯誤
2.strcpy,字串拷貝函式
呼叫形式:
strcpy(字元陣列1,字元陣列2);功能是將陣列2拷貝到陣列1中
例如: char str[20],str2=「name」;
strcpy(str1,str2);
printf("%s",str1);
執行程式就會發現螢幕上輸出的是 name
str1沒有初始化,但是我初始化的str2通過strcpy函式拷貝到了str1當中
也可表示為: strcpy(str1,「name」);
注意:str1=str2 是錯誤的
3.測試字串長度函式strlen
呼叫形式:strlen(字元陣列);
功能:則是字元陣列中字串的實際長度(所佔據的記憶體位元組數)
例如: char str1[10]=;
printf("%d",strlen[str1]);
執行結果是 7
C C 字串和字元陣列
c語言中沒有專門的字串變數,如果要將乙個字串存放在變數中,必須使用字元陣列,即用乙個字元型陣列來存放乙個字串,陣列中每乙個元素存放乙個字元。1 定義 char c 10 字元型與整型互相通用,因此 int c 10 也可以定義字元陣列。但由於兩種型別分配位元組不同,用整型來定義會浪費空間,另外這樣定...
C C 字元陣列 注意事項
c c 中,字元陣列的輸入有很多種,但是每種情況都是不一樣的,一定要把字元陣列的每種輸入輸出的情況弄清楚,這樣才能在不同的情況下使用不同的方法。1 字元陣列的初始化方法 一 如果要初始化的字串種還有空格,應該把空格也當作乙個字元輸入,注意,字元是使用單引號。char str 15 方法二 直接使用字...
C C 字串常量 字元陣列和字元指標
通常,如果在程式中定義了乙個字串,那麼為了節省記憶體,會把相同的字串儲存到乙個單獨的 相同的位置,此時如果用多個字元指標指向它,那麼指標的值會相同。常量字串位於c c 的文字常量區,在程式結束以後由系統釋放。char p string1 example char p string2 example ...