一、字符数组
1.定义字符数组
用来存放字符数据的数组是字符数组。在字符数组中的一个元素内存放一个字符。
char c[10];
c[0]='I'; c[1]=' ';c[2]='a';c[3]='m';c[4]=' ';c[5]='h';c[6]='a';c[7]='p';c[8]='p';c[9]='y';
由于字符型数据是以整数形式(ASCII代码)存放的,因此也可以用整型数组来存放字符数据。
2.字符数组的初始化
3.引用字符数组中的元素
1.输出一个已知的字符串。
#include <stdio.h>
int main()
{
char c[15]={'I',' ','a','m',' ','a',' ','s','t','u','d','e','n','t','.'};
int i;
for(i=0;i<15;i++)
printf("%c",c[i]);
printf("\n");
return 0;
}
2.输出一个菱形
#include <stdio.h>
int main()
{ char diamond[][5]={{' ',' ','*'},{' ','*',' ','*'},{'*',' ',' ',' ','*'},
{' ','*',' ','*'},{' ',' ','*'}};
int i,j;
for (i=0;i<5;i++)
{ for (j=0;j<5;j++)
printf("%c",diamond[i][j]);
printf("\n");
}
return 0;
}
注意:
4.字符串和字符串结束标志
在C语言中,是将字符串作为字符数组来处理的。
在实际工作中,人们关心的往往是字符串的有效长度而不是字符数组的长度。
为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”,以字符′\0′作为结束标志。
″C program″ 字符串是存放在一维数组中的,占10个字节,字符占9个字节,最后一个字节′\0′是由系统自动加上的
C系统在用字符数组存储字符串常量时会自动加一个′\0′作为结束符。
在定义字符数组时应估计实际字符串长度,保证数组长度始终大于字符串实际长度。
如果在一个字符数组中先后存放多个不同长度的字符串,则应使数组长度大于最长的字符串的长度。
#include <stdio.h>
int main()
{
char c[15]={'I',' ','a','m',' ','a',' ','s','t','u','d','e','n','t'};
int i;
for(i=0;c[i]!='\0';i++)
printf("%c",c[i]);
printf("\n");
return 0;
}
#include <stdio.h>
int main()
{
char c[15]={'I',' ','a','m',' ','a','\0','s','t','u','d','e','n','t'};
int i;
for(i=0;c[i]!='\0';i++)
printf("%c",c[i]);
printf("\n");
return 0;
}
#include <stdio.h>
int main()
{
char c[16]={'I',' ','a','m',' ','a',' ','s','t','u','d','e','n','t','\0'};
int i;
for(i=0;c[i]!='\0';i++)
printf("%c",c[i]);
printf("\n");
return 0;
}
5.字符数组的输入输出
(1) 逐个字符输入输出。用格式符“%c”输入或输出一个字符。
#include <stdio.h>
int main()
{
char c[15]={'I',' ','a','m',' ','a',' ','s','t','u','d','e','n','t','.'};
int i;
for(i=0;i<15;i++)
printf("%c",c[i]);
printf("\n");
return 0;
}
(2) 将整个字符串一次输入或输出。用“%s”格式符,意思是对字符串(string)的输入输出。
#include <stdio.h>
int main()
{
char c[]="China";
printf("%s\n",c);
return 0;
}