計算機二級C語言字符串的指針以及指向字符串的指針變量
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]={″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函數:將字符中小寫字母轉換成大寫字母
-
2017年C語言新增無紙化真題練習
C語言的應用範圍廣泛,具備很強的數據處理能力,不僅僅是在軟件開發上,而且各類科研都需要用到C語言,適於編寫系統軟件,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發。以下是小編為大家搜索整理的2017年C語言新增無紙化真題練習,希望能給大家帶來幫助!更多...
-
C語言與JAVA的區別
很多人不明白C語言與C++和JAVE之間的區別,為此,為大家收集整理了下面的內容,歡迎閲讀!C語言C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語...
-
C語言中文件操作詳解及實例代碼
在文件操作中除了打開操作以及讀寫操作,還有幾種比較常見的操作。以下是本站小編搜索整理的關於這些操作中涉及到的函數,,需要的朋友可以參考本文!想了解更多相關信息請持續關注我們應屆畢業生考試網!一.移動位置指針的函數rewind函數和fseek函數,這兩個函數的原...
-
2017年3月計算機二級C語言考試摸底測試題
以下是yjbys考試網小編整理的2017年3月計算機二級C語言考試摸底測試題,希望對大家有所幫助,祝大家計算機二級考試順利通過。一、選擇題(每小題1分。)(1)程序流程圖中帶有箭頭的線段表示的是()。A.圖元關係B.數據流C.控制流D.調用關係(2)結構化程序設計的基本原則...