我们在做昨天,初步学习二维数组的求值计算,那么我们今天将继续深入昨天的学习,只不过今天我们要讲的不是简单的数值计算,而是字符计算。话不多说,我们来看看今天的学习目标:
- 区别单字符和数字字符
- 字符数组的语法格式
- 字符数组的初始化
- 三种输入输出的方式
一、区别单字符和数字字符
单字符:用单引号圈起来的字符,只有一个字符
例:‘A‘ ’\t‘ ’1‘ ’ ‘ ’\\‘
字符串:用双引号括起来的字符,有0或多个字符有序排列
例:“123asd&&&” “我爱C语言”
注意:字符串的结束标志是\0 (程序运行时,计算机自动添加)
二、字符数组的语法格式
char 数组名[常量表达式];
三、字符数组的初始化
分为单字符和字符串
1、全部初始化
char a[5]={‘a’,‘s’,‘d’,‘f’,‘g’}
char a[5]=“asdfg” (错误的,未存储\0)
char a[6]=”asdfg” (正确的)
2、部分初始化
char a[5]=[‘a’,‘s’,‘d’];
char a[5]=”asd”;(正确的)
3、特殊初始化
char a[ ]={‘a’,‘s’,‘d’,’f’,‘g’};(char a[5])
char a[ ]={“asdfg”} (可以用sizeof()验证数组长度)
#include "stdio.h"
void main()
{
char a[]="asdfg";
int c;
c=sizeof(a)/sizeof(char);
printf("数组的长度为:%d",c); //字符串结束标志\0,数组长度=字符个数+1
}
四、三种输入输出方式
1、格式化输入
printf();
scanf();
格式控制符:%d %i %f %lf %c %s
2、单字符输入输出
putcahr(); //把ch保存的字符进行输出
ch=getcahr; //把getchar()接收的字符赋值给ch
3、字符串输入输出
puts(a); //把字符串a进行输出
gets(a); //把gets()接收的字符串保存到数组a中
- 其他
关于gets()、puts()、printf()、scanf()的区别
scanf()不可以接收空格 gets()可以接收空格
gets()不会自动换行 puts()会自动换行
printf()和scanf() 可以操作多个
puts()和gets() 只能操作一个
到这里我们就完成了今天的学习,今天的内容不多,也有许多与之前重叠的地方。我还会降思维导图放在结尾供大家学习理解,谢谢!
注:(部分涉及下一章内容,可以先看看仅作理解)
输出
一个字符串char a[100];用%c输出
int i , n=strlen(a);
for(i=0; i<n; i++)
{
printf("%c" , a[i]);
}
一个字符串char a[100];用%s输出
printf("%s" , a);
多个字符串char a[100][100];用%c输出
for(i=0; i<n; i++)
{
for(j=0; j<strlen(a[i]); j++)
{
printf("%c" , a[i][j]);
}
printf(" ");
}
多个字符串char a[100][100];用%s输出
for(i=0; i<n; i++)
{
printf("%s " , a[i]);
}