第一部分:
--简单的数据类型:整型、实型、字符型
--构造型:数组
结构体、联合体(共用体)
链表
字符型数据:
--常量:
1. 字符常量:
2. 转义字符常量:
3.字符串常量:
---用双引号引起来的一串字符。"abcd\0"
-
--在C语言中,字符串用\0作为结束标志,该标志不作为字符串的有效字符,但作为结束标志却占有一个字节的存储单元。
---\0作为结束标志是计算机的编译系统自动给为的,不需要人为的添加。
---""两个连续的双引号也是一个字符串--空串,空串在内存中占有一个字节的存储单元。
---" "该字符串在内存中占有2个字节的存储单元。
--- 字符串只有常量的存在,没有变量的说法。
4.字符常量的运算:
---大小写字母的转换:
'a'-'A'==97-65==32
'A'+32==65+32==97=='a'
--- 数字字符和数值间的转换:
'9'-'0'==57-48==9
'0'+9==48+9==57=='9'
--- 字符常量的关系 逻辑运算:
'a'>'A'      'A'&&'b'
二字符变量:
---在C中用关键字: char 来定义一个字符型变量
例如:  char ch;
--- 定义多个字符变量:
char  str,str1,str2;
---  给字符变量赋值:
char  str;
str='A';  ----在执行部分给字符变量赋值
-
-- 字符变量的初始化:
char  str='A';
--- 字符型变量在内存中占有一个字节的存储单元。
---由于字符的存储是采取ascii形式的:
例如:
#include <stdio.h>
void main()
{char  str='A';
printf("str=%d\n,str=%c\n",str,str);
}
--->假设:要用一个字符变量ch来表示一个小写字符:
ch>='0'&&ch<='9' 
第二部分:字符型数据的输入和输出:
1.调用标准的输入(scanf)和输出(printf)函数:
---》printf 来实现字符的输出:
***用格式字符 %c来控制字符的输出。
例如:
#include <stdio.h>
void main()
{char  str,ch;
str='A';ch='Z';
printf("str=%c,ch=%c\n",str,ch);
}
--scanf函数实现字符的输入:
**** 也是用格式字符 %c来控制输入:
#include <stdio.h>
void main()
{char  ch;
scanf("%c",&ch);
printf("ch=%c\n",ch);
}
---->字符如何输入:
1.格式字符间是连续的:
#include <stdio.h>
void main()
{char  ch,ch1,ch2;
scanf("%c%c%c",&ch,&ch1,&ch2);
printf("ch=%c,ch1=%c,ch2=%c\n",ch,ch1,ch2);
}
-->输入的数据间也要连续输入,不能有分隔符,这时候的分隔符都将作为字符而被读入计算机内部。
2.格式字符间不是连续的:(有空格)
#include <stdio.h>
void main()
{char  ch,ch1,ch2;
scanf("%c %c %c",&ch,&ch1,&ch2);
printf("ch=%c,ch1=%c,ch2=%c\n",ch,ch1,ch2);
}
--->(1)同上
(2)可以在输入的字符间加入分隔符。
3.当格式字符间有其他字符。
#include <stdio.h>
void main()
{char  ch,ch1,ch2;
scanf
("%c,%c,%c",&ch,&ch1,&ch2);
printf("ch=%c,ch1=%c,ch2=%c\n",ch,ch1,ch2);
}
4.字符间宽度的控制:
#include <stdio.h>
void main()
{char  ch,ch1,ch2;
scanf("%4c%3c%2c",&ch,&ch1,&ch2);
printf("ch=%c,ch1=%c,ch2=%c\n",ch,ch1,ch2);
}
--->首先输入要输入的字符,再根据其对应的宽度输入相应的占位符号(空格)
5.字符和数值间交叉输入:
-
-字符后跟数值:要有分隔符
--数值后跟字符:不要分隔符
#include <stdio.h>
void main()
{char  ch,ch1;
int  a,b;
scanf("%d%c%d%c",&a,&ch,&b,&ch1);
printf("a=%d,ch=%c,b=%d,ch1=%c\n",a,ch,b,ch1);
}
---》a=10 b=20
ch='A' ch1='Z'
10A  20Z
2.调用标准的字符专用输入getchar和输出putchar函数
1.一般调用形式: ch=getchar();
putchar(参数);
***在getchar函数中后面的括号是没有参数,该括号是不能省略的。
*** putchar后的参数,可以是字符变量也可以是字符常量.
*** 当使用这两个函数:#include <stdio.h>
例如:
#include <stdio.h>
void main()
{ char  ch;
ch=getchar();
putchar(ch);
putchar('\n');
}
第三部分:字符型数据的简单应用:
例如1:编写函数通过键盘读入一行字符,然后再输入这行字符。用当输入的字符为'!'结束输入。
#include <stdio.h>
void main()
{char  ch;
ch=getchar();
while(ch!='!')
{ putchar(ch);
ch=getchar();
}
putchar('\n');
}
例如2:编写函数,把一行中所有小写字母转换为大些字符。大写字符和其他字符不变,最后在输出改变后的这行字符,字符的输入用'\n'结束输入。
#include <stdio.h>
void main()
{ char  ch;
printf函数是如何实现的
ch=getchar();
while(ch!='\n')
{ if(ch>='a'&&ch<='z') ch=ch-32;
putchar(ch);
ch=getchar();
}
putchar('\n');
}
例如3:编写函数,从左向右把一行中的所有数字字符转换为一个整数,放在变量s中,最后输出转换后的数值。例如:sdg4f5sdhsd1gs2dfh  s=4512
#include <stdio.h>
void main()
{char  ch;
int  s=0;
ch=getchar();
while(ch!='\n')
{ if(ch>='0'&&ch<='9') s=s*10+ch-'0';
ch=getchar();
}
printf("s=%d\n",s);
}
例如4:
E
DDD
CCCCC
BBBBBBB
AAAAAAAAA
#include <stdio.h>
void main()
{int i,j,k;
char  ch='E';
for(i=1;i<6;i++)
{ for(j=1;j<6-i;j++) printf(" ");
for(k=1;k<2*i;k++) putchar(ch);
putchar('\n');
ch--;
}
}
例如5:把一串密码翻译成正文,密码以'@'表示结束。翻译的规则如下:
--如果是字母,转换为字母的下一个字母,
--如果是字母Z就翻译为A
--无论是大些字母还是小写字母都翻译为小写字母
--其他字符一律原样译出
#include <stdio.h>
void main()
{char ch;
ch=getchar();
while(ch!='@')
{ if(ch>='A'&&ch<'Z') ch=ch+32+1;
else  if(ch>='a'&&ch<'z') ch=ch+1;
else  if(ch=='Z'||ch=='z') ch='a';
putchar(ch);
ch=getchar();
}
putchar('\n');
}