字符數組和數組的定義是一樣的,賦值也和數組差不多,只不過字符數組用來存放字符。其實我感覺用起來也是一樣的。
字符數組的引用
#include <stdio.h>
int main()
{
int i,j;
chara[][5]=
{
{'B','A','S','I','C'},
{'d','B','A','S','E'}
};
for(i=0;i<=1;i++)
{
for(j=0;j<5;j++)
{
printf("%c ",a[i][j]);
}
printf("\n");
}
}
在C語言中沒有專門的字符串變量,通常用一個字符數組來存放一個字符串。當把一個字符串存入數組時,也把結束符‘\0’存入數組,并以此作為該字符串的結束標志。有了‘\0’以后,就不必再用字符數組的長度來判斷字符串的長度了。
C語言允許使用字符串的方式對數組作初始化賦值。
例:char c[]={'C',' ','p','r','o','g','r','a','m'};
可寫為:char c[]={"C program"};或去掉{} 寫為:char c[]="C program";
字符數組的輸入輸出:
除了上述賦值方法以外還可以使用printf,scanf函數直接輸入輸出;
字符串處理函數:
- puts()字符串輸出函數
一般形式:puts(字符數組名)
功能:把字符數組中的字符串輸出到顯示器:
int main()
{
char c[]="string666";
puts(c);
return 0;
}
但系統會顯示有問題,所以老師給我們一個mygets的函數。
#include <stdio.h>
void mygets(char *ch,int size)
{
int i=0;
for(i=0;i<size-1;i++)
{
ch[i]=getchar();
if(ch[i]=='\n')
break;
}
ch[i]='\0';
if(i==size-1)
{
while(getchar()!='\n');
}
}
- gets()字符串輸入函數
一般格式:gets(字符數組名)
功能;從標準輸入設備上輸入一個字符串
int main()
{
cahr st[15];
printf("input st:");
gets(st);
puts(st);
return 0;
}
strcat:字符串連接函數
一般形式:strcat(字符數組名1,字符數組名2)
功能:把字符串2中的字符串連接到字符數組1中字符串后面,并刪除數組1中的‘\0’.strcpy:字符串拷貝函數
一般形式:strcpy(字符數組名1,字符數組名2)
功能:把字符數組2中的字符串拷貝到字符數組1中。結束標志‘\0’也一同拷貝,。注意:要求字符數組1要足夠長,否則不能全部裝入所拷貝的字符串。strlen:測試字符串長度
一般形式:strlen(字符數組名)
功能:測試字符串的實際長度(不含字符串結束標志‘\0’)并作為函數返回值。