C-Style字串(字元陣列)

1、在C語言中字串是由字元所組成的陣列,並在最後加上一個空字元’\0’,以下就是一個"hello"字串的定義。

char str1[] = {'h', 'e', 'l', 'l', 'o', '\0'};

2、C是使用空字元來識別一個字元陣列是否表示字串,像上例可以用"hello"來定義,在這邊雖然沒有指定空字元’\0’,但是程式會自動加上空字元。

char str2[] = "hello";

3、字串是字元陣列,所以可以用陣列的方式來操作,在指定"hello"時表面上雖然只有5個字元,但由於最後會加上一個空字元’\0’,所以str2[ ]共有6個字元。
4、字串一但指定,長度就固定了,使用時不能超過字串的長度。

char str[80];
scanf("%s", str); //由於空白字元的關係,實際上只能輸入79個字元

5、要指定新的字串值時,跟陣列一樣,不能直接指定新值,必須要一個字元一個字元的指定至陣列中,並在最後加上空白字元,這樣的操作方式並不方便,所以C語言提供了字串處理的相關函式,協助使用者進行一些字串處理。

char str[80]; 
str = "Just";  //錯誤

char str[80] = {'\0'}; 
str[0] = 'J'; 
str[1] = 'u'; 
str[2] = 's'; 
str[3] = 't'; 
str[4] = '\0'; //正確