字符数组
1,定义 char a[10];
2,初始化
3,引用
字符串:双引用括起来的若干字符
结束标志,’\0’,由系统自动追加在字符串的后面,代表字符串结束
‘a’字符常量,在内存中占一个字节
"a"字符串常量,在内存中占两个字节,分别存储a和\0
1)用字符串对字符数组初始化
char a[10]=“hello”;==>char
a[10]={‘h’,‘e’,‘l’,‘l’,‘o’};字符数组有10个元素
char c[]=“hello”;字符数组有6个元素,加’\0’
int a[10]={1,2,3}
2)字符数组的输入,输出
%s一次性输入输出,不需要使用循环输入
输入
char a[10];
for(i=0;i<10;i++)
scanf("%c",&a[i]);
scanf("%s",a);
输出
for(i=0;i<10;i++)
printf("%c",a[i]);
printf("%s",a);
注意:
1,在C语言中数组名代表数组第一个元素的地址,起始地址。如果是其他元素要加地址符& 如:printf("%s",&a[1])从a[1]开始输出
:printf("%s",&a[0])a[0]是一个数组元素
2,如果利用scanf输入多个字符串,则应该在输入时以空格分隔
如:char strl1[5],str2[5],str3[5];
scanf("%s%s%s",str1,str2,str3);
输入数据How are you?
若改为 :char str[13]
scanf("%s",str);
输入数据How are you?
系统会把空格符作为输入的字符串之间的分隔符,因此只将空格前的字符How
送到str中,输出How
穷举法写百钱买百鸡
#include"stdio.h"
int main()
{
int a,b,c;
for(a=0;a<100;a++)
{
for(b=0;b<=100;b++)
{
for(c=0;c<=100;c++)
{
if(a+b+c==100&&(5*a+3*b+c/3==100))
{
printf("公鸡%d只 母鸡%d只 小鸡%d只",a,b,c);
printf("\n");
}
}
}
}
}
穷举法写水仙花数
#include"stdio.h"
int main()
{
int a,b,c;
for(a=1;a<=9;a++)
{
for(b=0;b<=9;b++)
{
for(c=0;c<=9;c++)
{
if((a*a*a+b*b*b+c*c*c)==(100*a+10*b+c))
printf("%d ",100*a+10*b+c);
}
}
}
}