C语言-字符类型

char不仅是一种整数,也是一种特殊的类型:字符(character)。

  • 常用单引号表示字符的字面量,如'a', '1'。
  • 单引号''也是一个字符,printf和scanf里用的%c来输入输出字符

注意:char整数类型和字符类型不相等,如1与"1",一个是数字,一个是字符,

#include <stdio.h>
int main()
{
char c;
char d;
c = 1;
d = '1';//将字符赋值给一个char变量
if (c == d){
printf("相等\n");
}else{
printf("不相等\n");
}
printf("c=%d\n",c);
printf("d=%d\n",d);
return 0;
}
//结果:不相等!

作为一个整数,c的输出值为1,d的输出值为49。计算机中用49来表达字符1。每一个字符在计算机中都有一个值来表达它(ASCII码)。同理,在使用scanf时也是如此。

字符的输入输出

在scanf里输入'1'这个字符给char c:

scanf("%c",&c); -> 1,输入1得到49

scanf("%d",&i); c = i ; -> 49,需要输入49

#include <stdio.h>
int main()
{
char c;
scanf("c%",&c);//scanf将值传给c,以下面两种形式输出
printf("c=%d\n",c);//以整数值是多少
printf("d='%c'\n",c);//如果当做一个字符,它是多少,这里%c的''自己加上去的,这样结果显示时有''
return 0;
}
//结果输入1,c=49,c='1'

以%d的输入情况下去读取,观察结果。scanf只能处理int,不能处理char,所以对上面代码进行了更改(不能把int类型转为char类型,但可以输入char)

#include <stdio.h>
int main()
{
int i;
char c;
scanf("d%",&i);//%d是整型,int的数值不能转为字符
c = i
printf("c=%d\n",c);//以整数值是多少
printf("d='%c'\n",c);//如果当做一个字符,它是多少,这里%c的''自己加上去的,这样结果显示时有''
return 0;
}
//结果:输入给它1。c=1,d='';输入给它49。c=49,d='1'

这里整数49与'1'相等。

混合输入

  • 注意下面的不同(空格区别)
  • scanf("%d %c",&i,&c)
  • scanf("%d%c",&i,&c)

%c:从输入里读出一个字符

#include <stdio.h>
int main()
{
int i
char c;
scanf("d% %c",&i,&c);//%d是整型,int的数值不能转为字符
printf("i=%d",c=%d,c='%c'\n",i,c,c);
return 0;
}
//输入12 1。i=12,c=49,c='1'
//输入12a。i=12,c=97,c='a'
//输入12 1。i=12,c=49,c='1'
//将scanf中换成"d%%c"
//输入12 1。i=12,c=32,c=' ',空格的ASCII就是32
//输入12a。i=12,c=97,c='a'
//输入12 1。i=12,c=32,c=' '

%d后面没有空格,整数只读到整数结束为止,后面的分配给后面;如果后面是有空格的,读到整数后还要把后面的空格都读到。也就是说在%c前加空格会跳过空白字符(空格、换行符)开始读取,不加空格会把空白字符也读取。

字符计算

既然字符是一种整数,当然可以做运算。

#include <stdio.h>
int main()
{
char c = 'A'
c++
printf("%c\n",c);
return 0;
}
//结果为B。c+=2会等到C
//做减法
//int i = 'Z' - 'A';
//printf("%d\n",i);
//结果为25
  • 一个字符加一个数字得到ASCII码表中那个数之后的字符
  • 两个字符的减法,得到它们在表中的距离
  • 字母在ASCII表中是顺序排列的
  • 大写字母和小写字母是分开排列的,并不在一起
  • 'a'-'A'可以得到两段之间的距离,A+'a'-'A'可以把一个大写字母变成小写字母,而a+'A'-'a'可以把一个小写字母变成大写字母

C语言-字符类型的更多相关文章

  1. c语言字符类型作业

    一.PTA实验作业 题目1:7-2 统计一行文本的单词个数 1. 本题PTA提交列表 2. 设计思路 1.定义整形变量i=0,count=0,flag. 2.定义数组str[999] 3.输入str[ ...

  2. 2016年11月3日JS脚本简介数据类型: 1.整型:int 2.小数类型: float(单精度) double(双精度) decimal () 3.字符类型: chr 4.字符串类型:sting 5.日期时间:datetime 6.布尔型数据:bool 7.对象类型:object 8.二进制:binary 语言类型: 1.强类型语言:c++ c c# java 2.弱类型语

    数据类型: 1.整型:int 2.小数类型: float(单精度) double(双精度) decimal () 3.字符类型: chr 4.字符串类型:sting 5.日期时间:datetime 6 ...

  3. 转 Go语言基本类型 —— 字符类型

    https://blog.csdn.net/FHD994603831/article/details/92435724 字符类型Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用b ...

  4. C语言常见类型占用字节数

    前言 最近笔试经常遇到c语言各类型变量所占字节数的问题,这里做一个总结好了. 类型 常见的有char.int.long.short.float.double及指针等. 字符类型 这里单只char,ch ...

  5. 【笨嘴拙舌WINDOWS】字符类型与字符串

    "我将用C语言作为工具,开始WINDOWS API的使用" windows NT 从底层开始支持unicode. 1.字符类型 WINDOWS的字符类型在WINNT.H和CTYPE ...

  6. 返璞归真vc++之字符类型

    在今天,大量使用java与.net的程序员已经很少去真实了解字符的底层表达,但是使用VC++编程,对字符的处理却非常慎重,刚学习vc++肯定会为其中的字符类型给晕头转向,今天本人学习第一节,从字符开始 ...

  7. Delphi 基本数据类型列表 高级数据类型列表 字符类型查询列表清单

    原文:Delphi 基本数据类型列表 高级数据类型列表 字符类型查询列表清单 长长的列表文字类型文件 分类 范围 字节 备注 简单类型 序数 整数 Integer -2147483648 .. 214 ...

  8. c语言的类型、运算符与表达式

    title: 2017-10-17c语言的类型.运算符与表达式 tags: c程序设计语言 grammar_cjkRuby: true --- 1.1 数据类型 char 字符型,一个字节 int 整 ...

  9. Java开发笔记(三十一)字符类型的表达

    前面介绍的Java编程,要么是与数字有关的计算,要么是与逻辑有关的推理,充其量只能实现计算器和状态机.若想让Java运用于更广阔的业务领域,就得使其支撑更加血肉丰满的业务场景,而丰满的前提是能够表达大 ...

随机推荐

  1. IOS 常用View属性设置

    设置按钮属性 1.设置按钮背景颜色 backgroundColor @property (weak, nonatomic) IBOutlet UIButton *deleteButton; self. ...

  2. SciPy k均值聚类

    章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy ...

  3. PWM与时间片思想

    改编自:http://www.moz8.com/thread-79049-1-1.html 什么是PWM? PWM:脉冲宽度调制,由于在数字电路(或者单片机)输出模拟信号的成本高昂,换句话说,受制于只 ...

  4. Redis详解(四)——删除策略

    Redis详解(四)--删除策略 Redis中的数据特征 Redis是一种内存级数据库,所有数据均存放在内存中,内存中的数据可以通过TTL指令来获取其状态,当 key 不存在时,返回 -2 . 当 k ...

  5. 017.Oracle数据库,取今年第一天,取今年最后一天

    /*取今年第一天,取今年最后一天*/ SELECT trunc(sysdate, 'yyyy') AS 今年第一天 , add_months(trunc(sysdate, ) AS 今年最后一天 FR ...

  6. chatdet用法

    1. 下载chardet 2. 在命令提示符里转到chardet的存放目录,执行python setup.py install 3. 在代码中用 import chardet 导入模块 4. 用法:c ...

  7. 小技巧:使用命令行打开vscode 以及 sublime 工具

    vscode手动打开vscode command + shift + p 打开命令面板(或者点击菜单栏 查看>命令面板)输入 shell 选择 install code command in P ...

  8. postman带上token对接口进行测试

    根据验证码进行登陆,登录之后返回token.然后请求其他接口时在header头中带上token访问其他接口进行测试 账户信息输入验证码 登陆成功,看到返回的token 我们这个项目可以刷新一下toke ...

  9. Ubuntu上安装tftp服务

    1. 安装 sudo apt install tftpd-hpa 2.设置工作目录 mkdir ~/tftpdroot tftpdroot 3.修改配置文件 sudo vi /etc/default/ ...

  10. WIN10打开资源管理器显示该文件没有与之关联的程序来执行该操作.请安装应用,请在“默认应用设置”..关联 —— 解决方案

    win+R,输入regedit,分别在HKEY_CLASSES_ROOT\piffileHKEY_CLASSES_ROOT\InternetShortcutHKEY_CLASSES_ROOT\lnkf ...