一.字符數組
1.定義:格式如下
char a[10];? //此處就表示定義了一個長度為10的字符數組
2.引用:
也和其余的數組一樣,是下標引用。
3.初始化:
如下代碼為字符數組初始化的幾種情況:
int main()
{char arr[5] = { 'a','b','c','d','e'};char arr[] = { 'a','b','c','d','e' };//與上面的等價char arr[10] = { 'a','b','c','d','e' };//如果{}中的元素個數小于[]內的值,其余的默認為為 '\0'char arr[2][3] = { {'a','b'},{'d','e','f'}};//二維數組也同理
}
二.字符串
1.數組的形式來寫字符串,如下:
char? ch[ ] = { "hello“ } ;//此處該數組的長度應該為6,這是因為字符串后面會自動添加一個'\0'
三.字符數組輸入輸出和字符串處理函數
2.字符數組的處理
(1)逐個字符輸入和輸出。本質上和普通的數組一樣,也可以利用循環語句來輸入,此處不再贅述。
(2)整個字符串的輸入,輸出:可以使用 %s 來輸入。如下:
char ch[10];
scanf_s("%s",ch);
printf("%s",ch);
需要注意的是,在輸入字符串的時候,空格和回車都相當于字符串的分隔符,不能被讀入
3.字符串處理函數:
(1)gets函數,gets?函數的作用就等同于 scanf_s("%s",ch); 具體格式如下:
gets(數組名稱);? ? //值得注意的是,使用gets函數的時候可以輸入任意的字符,回車鍵停止,()內可以是數組名或者指針
(2)puts函數同理...
(3)strlen函數。(求字符串的長度)具體如求數組arr的長度:
strlen(arr);//需要頭文件 #include<string.h>
(4)strcpy函數。(字符串復制函數)具體如將str1中的字符轉化為str2中的值:
strcpy(str1,str2);//需要保證str1的長度足夠大,其真實的含義是:將str2中的字符串內容(包含‘\0’)復制到到str1中,返回的是str1的地址值。
(5)stract函數。(字符串連接函數)如將arr1連接到arr2后面:
stract(arr2,arr1);//在連接的時候arr1會自動覆蓋arr2后面的‘\0’
(6)strcmp函數。(字符串比較函數)如比較arr1和arr2的大小:
strcmp(arr1,arr2);//指的是將兩個字符串從左到右的每一個字符比較ASCII碼值,知道出現'\0'或者不相等為止。如果arr1>arr2,返回正整數;如果arr1<arr2,返回負整數;如果arr1=arr2,返回0