您的位置:首页 > 编程语言 > C语言/C++

C语言入门----字符

2015-10-15 22:32 751 查看
字符变量在内存中占用一个字节,只能存放ASCII码。

‘0’~’9’对应的整数为48~57

‘A’~’Z’对应的整数为65~90

‘a’~’z’对应的整数为97~122

大写字母与小写字母的差值为32

putchar和getchar

char c;
c=getchar();/*从键盘读取一个字符*/
putchar(c);/*输出c的值到屏幕*/


字符运算

C语言规定,所有的字符运算都是转成ASCII的整数运算。

如:

‘B’- ‘A’相当于66-65=1

‘a’+ 1相当于97+1=98=’b’

既然字符型数据和整形数据可这么方便的转换,那么字符型数据也可以使用%d输出,用来获得字符的ASCII码序号。

用scanf输入字符

每个%c只接受一个字符

scanf("%c%c%c",&a,&b,&c);


如果输入:uvwxyz

系统会一个一个的截取,使a = ‘u’,b = ‘v’,c = ‘w’

在字符型变量上使用列宽控制时,第一个变量只会读取第一个字符,第二个变量会跳跃列宽后再读取一个字符

scanf("%3c%c",&c1,&c2);


如果输入:abcde

则c1 = ‘a’,c2 = ‘d’

空格和回车都作为字符

scanf("%c%c%c",&a,&b,&c)


如果输入:x□y□z

□表示空格,则a = ‘x’,b = ‘□’,c = ‘y’,最右边的两个字符被丢弃。

如果输入:x(回车)yz

a,c与前面相同,但是b会赋值为一个回车,也就是ASCII码的10。

例题

#include <stdio.h>
int main()
{
char c1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();
c6=getchar();
putchar(c1);
putchar(c2);
printf("%c%C\n",c5,c6);
return 0;
}


程序运行后,若从键盘输入(从第1列开始)

123(回车)

45678(回车)

则输出结果为:1245
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: