目錄
使用場景
字符型數組定義:
? ?初始化
數組儲存
打印
字符型數組常見函數
常見操作
strcpy:字符串拷貝????????
strcat(str1,str2)字符串拼接
strcmp:字符串比較
注意:
二維字符型數組
使用場景
:c語言沒有字符串類型,也無法定義字符串變量,只能通過字符型數組,每個元素存放一個字符,最終存放字符串
字符型數組定義:
數據類型? 數組名? [元素個數]
char? ? ? ? ? ?str? ? ? ? ? [20] ;
注意:元素個數必須是常量或者常量表達式
? ? ? ? ? ?元素個數必須能夠容納下所有字符,包括\0
字符型數組和字符串的區別:字符型數組可以存放字符,不一定包含\0,字符串末尾必須要有\0
字符串以\0來結尾,但是還是不會丟掉后面的\0
? ?初始化
初始化不能與賦值
全部初始化:char str [6] = {'a','d','r','r','e','\0'};
????????????????????????char str [6] = {"heelo"};????????
????????????????????????char str [6] = "heelo";??????
局部初始化:??char str [6] = {'r','e','\0'};? 沒有給定初值的元素,值為0(\0)
?????????????????????????char str [6] = {"hee"};????????
????????????????????????char str [6] = "hee";??????
? ? ? ? ? ? ? ? ? ? ? ? ?????char str [6] = {0};是清零? ? ????char str [6] = "0";不是是清零? ? ??
默認初始化:char str [] = {'a','d','r','r','e','\0'};
?????????????????????????char str [] = {"heelo"};????????
????????????????????????char str [] = "heelo";???
數組儲存
字符型數組所占字節? =? 元素個數
連續性儲存
打印
printf("%c",a[n]);打印單個字符
printf("%s",a);打印一串字符 一直到\0,沒有\0就會越界找,程序就會有崩潰的風險
puts(a)
注意:打印字符串會打印到最近的一個\0就會結束打印
scsanf("%s",a); 只有%c可以接收空格,有空格要用
gets(a);接收帶空格的字符串
確保字符串末尾由\0
字符型數組常見函數
strlen:獲得字符串的長度(從字符串開頭到最近的\0中間元素的個數,不包含\0)
scanf:獲得所占內存大小,包括\0
常見操作
strcpy:字符串拷貝????????
拷貝字符串,不太安全
strcpy(目的空間,拷貝數據);
目的空間一定要比拷貝數據大,要不然就會內存越界
strcat(str1,str2)字符串拼接
:將str2拼接到str1的末尾
strcmp:字符串比較
字符串的比較,如果兩個字符串相同,結果為零
如果第一個字符串>第二個字符串 ,結果為>0的值
如果第一個字符串<第二個字符串 ,結果為<0的值
兩個字符串比較,從左到右每個字符進行比較,不同的字符,誰的ASCII碼值大,字符串就大
注意:
上述參數常量和變量都可以
二維字符型數組
定義:數據類型? 數組名? [行數][列數];
char? str [5] [32]
存儲:和二維數組類似
連續性,有序性
初始化:一般是局部初始化,和二維數組類似
二位字符型數組也可以看作是由兩個以為字符型數組構成的