2023年計算機二級C語言考點解析 字串

2022-04-07 05:54:12 字數 2733 閱讀 3706

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語言考點解析 檔案

16.1 檔案型別指標 file型別指標 c語言中的檔案分緩衝型檔案和非緩衝型檔案兩種,此處只討論緩衝型檔案。對於緩衝型檔案,每個被使用的檔案都在記憶體中開闢乙個區,用來存放檔案的有關資訊 如檔案名字 檔案狀態及檔案當前位置等 這些資訊儲存在有關結構體型別的變數中。該結構體型別由系統定義,取名為fi...

2023年計算機二級C語言考點解析 運算

15.1 位運算的含義及應用 1.位的概念 大多數計算機系統的記憶體儲器是由眾多的儲存單元構成的。在微機中,每個儲存單元是1個位元組,它由8位二進位制數構成,可以表示28 256種資訊,各位的編號從0 7,最左邊的位 第7位 是最高位,最右邊的位 第0位 是最低位。由於二進位制本身的特點,各位上的數...

2023年計算機二級C語言考點解析 陣列

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