當前位置:才華齋>計算機>C語言>

計算機二級C語言字串的指標以及指向字串的指標變數

C語言 閱讀(1.71W)

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

計算機二級C語言字串的指標以及指向字串的指標變數

如:

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]={″I love China!″};

不能等價於

char str[14];

str[]={″I love China!″};

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

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

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

  3.字串處理函式

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

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

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

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

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

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

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