字符型数据与整型数据是通用的
向字符变量赋予整数
#include<stdio.h>
void main()
{
char c1,c2;
c1=97;
c2=98;
printf("%c %c/n",c1,c2);
printf("%d %d/n",c1,c2);
}
大小写字母的转换
#include<stdio.h>
void main()
{
char c1,c2;
c1='a';
c2='b';
c1=c1-32;
c2=c2-32;
printf("%c %c",c1,c2);
}
对字符的操作:
随意输入一串字符统计这串字符中的 字母、数字、空格、其他字符(标点符号等)的个数
#include<stdio.h>
void main()
{
char c;
int letters=0,space=0,digit=0,others=0;
printf("请随意输入一串字符/n");
while((c=getchar())!='/n')/*当输入的不是回车时执行while循环体部分*/
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')//英文字母
letters++;
else if(c==' ')//空格
space++;
else if(c>='0'&&c<='9')//数字
digit++;
else//其他字符
others++;
}
printf("字母=%d 空格=%d 数字=%d 其它=%d",letters,space,digit,others);/*输出最终结果*/
}
输入一个字符,判断它是否大写字母,如果是,将它转换为小写字母;如果不是,不转换,然后输出最后得到的字符。
#include<stdio.h>
void main()
{
char ch;
scanf("%c",&ch);
ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
printf("%c/n",ch);
}
将字母A变成字母E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y变成C,Z变成D……按此规律转换,非字母不变
例如:China ! 转换为 Glmre!
#include<stdio.h>
void main()
{
char c;
while((c=getchar())!='/n')/*当输入的不是回车时执行while循环体部分*/
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))//英文字母
{
c=c+4;
if(c>'Z'&&c<='Z'+4||c>'z')/*在ASCNII码中,大写字母与小写字母中还有一些非字母*/
c=c-26;
}
printf("%c",c);
}
printf("/n");
}
/*先判断是否为字母,如果是值加4(变成其后的第4个字母),如果加4以后字符值大于'Z'或'z',
则表示原来的字母在V(或v)之后,将它转换为A~D(a~d)之一,办法是使字符变量c的值减26*/