2023年計算機二級C語言字串考點小結

2022-04-07 06:37:12 字數 2734 閱讀 2620

10.1 字串與字元陣列  1.字元陣列的定義

定義方法與前面介紹的類似,只是將陣列定義為字元型即可。例如:

char c[10];

這裡定義了乙個包含10個元素的字元陣列c。

2.字元陣列的初始化

對字元陣列初始化,可以採用以下方法:

(1)逐個字元賦給陣列中各元素;

(2)用字串常量使字元陣列初始化。

3.字串

在c語言中,字串是作為字元陣列來處理的,字串可以存放在字元型一維陣列中,故可以把字元型一維陣列作為字串變數。

字串常量是用雙引號括起來的一串字元。

c語言中約定用′\0′作為字串的結束標誌,它佔記憶體空間,但不計入串的長度,′\0′的**值為0。

系統對字串常量也自動加乙個′\0′作為結束符。例如″c language″共有10個字元,但在記憶體中佔11個位元組,最後乙個位元組存放′\0′。

4.字元陣列的輸入輸出

(1)逐個字元輸入和輸出

①在標準輸入輸出printf和scanf中使用%c格式描述符;

②使用getchar和putchar函式。例如:

for(i=0;i<10;i++)

scanf(″%c″,&str[i]); /*或str[i]=getchar();*/

str[i]=′\0′;/*人為加上串結束標誌*/

for(i=0;i<10;i++)

printf(″%c″,str[i]);/*或putchar(str[i]);*/

(2)字串整體輸入輸出

①在標準輸入輸出函式printf和scanf中使用%s格式描述符;

輸入形式:

char str[6];

scanf(″%s″,str);

其中 str為字元陣列名,代表著str字元陣列的起始位址,輸入時系統自動在每個字串後加入結束符′\0′。若同時輸入多個字串,則以空格或回車符分隔。

輸入形式:

printf(″%s″,str);

輸字串時,遇第乙個′\0′即結束。但可人為控制輸出串所佔的域寬如:

printf(″%6s″,str);/*若字串中字元多於6個,仍將全部輸出*/

printf(″%-6s″,str);/*只輸出前6個字元,多餘的不輸出*/

②使用gets和puts函式輸入輸出一行

gets函式用來從終端鍵盤讀字元,直到遇換行符為止,換行符不屬字串的內容。

呼叫形式:

gets(str);

str為字元陣列名或字元指標,字串輸入後,系統自動將′\0′置於串尾代替換行符。若輸入串長超出陣列定義長度時,系統報錯。

puts函式用來把字串的內容顯示在螢幕上。

呼叫形式:

puts(str);

str的含義同上。輸出時,遇到第乙個′\0′結束並自動換行,字串中可以含轉義字元。

10.2 字串的指標以及指向字串的指標變數

1.用指標方法實現乙個字串的儲存和運算

如:char * strp=″china″;

此處定義了乙個字元指標變數strp,變數中存放的是字串第乙個字元的位址。

c語言對字串常量是按字元陣列處理的,它實際上在記憶體開闢了乙個字元陣列用來存放字串變數,並把字串首位址賦給字元指標變數strp。

在輸出時用

printf(″%s\n″,strp);

通過字元陣列名或字元指標變數可以輸出乙個字串。而對乙個數值型陣列,是不能企圖用陣列名輸出它的全部元素的。

2.字元指標變數與字元陣列

雖然用字元陣列和字元指標變數都能實現字串的儲存和運算,但它們二者之間是有區別的,不應混為一談,主要有以下幾點:

(1)字元陣列由若干個元素組成,每個元素中放乙個字元,而字元指標變數中存放的是位址(字串的首位址),決不是將字串放到字元指標變數中。

(2)對字元陣列只能對各個元素賦值,不能用以下辦法對字元陣列賦值。

char str[14];

str=″i love china!″;

而對字元指標變數,可以採用下面方法賦值:

char *a;

a=″i love china!″;

但注意賦給a的不是字元,而是字串的首位址。

(3)賦初值時,對以下的變數定義和賦初值:

char *a=″i love china!″;

等價於:

char *a;

a=″i love china!″;

而對陣列初始化時:

static char str[14]=;

不能等價於

char str[14];

str[]=;

即陣列可以在變數定義時整體賦初值,但不能在賦值語句中整體賦值。

(4)在定義乙個陣列時,在編譯時即已分配記憶體單元,有確定的位址。而定義乙個字元指標變數時,給指標變數分配記憶體單元,在其中可以放乙個位址值,就是說,該指標變數可以指向乙個字元型資料,但如果未對它賦予乙個位址值,這時該指標變數並未具體指向哪乙個字元資料。

(5)指標變數的值是可以改變的。

3.字串處理函式

c語言中沒有對字串進行合併、比較和賦值的運算子,但幾乎所有版本的c語言中都提供了有關的庫函式。例如:

(1)strcat函式:連線兩個字元陣列中的字串

(2)strcpy函式:字元拷貝函式

(3)strcmp函式:字元比較函式

(4)strlen函式:測試字串長度的函式

(5)strlwr函式:將字串中大寫字母轉換成小寫字母

(6)strupr函式:將字元中小寫字母轉換成大寫字母

2023年計算機二級C語言陣列考點小結

9.1 一維陣列的定義 初始化和引用 1.一維陣列的定義方式為 型別說明符 陣列名 常量表示式 1 陣列名的命名方法與變數名相同,遵循識別符號命名規則 2 陣列是用方括號括起來的常量表示式,不能用圓括號 3 常量表示式表示陣列元素的個數,即陣列的長度,陣列的下標從0開始,下標的最大值為 常量表示式 ...

2023年計算機二級C語言陣列考點歸納

第6章 陣列 考點一 陣列 陣列是由屬於同乙個資料型別的有序資料集構成。陣列中的每乙個資料稱為 元素 可以用乙個統一的陣列名和下標來唯一地標識陣列中的元素。考點二 一維陣列的定義 一般形式 考點三 一維陣列元素的引用 一般形式 說明 引用陣列元素時,陣列的下標可以是整型常量,也可以是整型表示式。和變...

2023年計算機二級C語言函式考點小結

1 呼叫c語言標準庫函式時必須在源程式中用include命令,include命令的格式是 include 頭檔名 include命令必須以 號開頭,系統提供的頭檔名都以.h作為字尾,頭檔名用一對雙引號 或一對尖括號 括起來。2 標準庫函式的呼叫形式 函式名 參數列 2.在c語言中庫函式的呼叫可以以兩...