字符

1、字符的分类

字符主要包括字母、数字、标点符号、控制字符等

在ASCII编码表中,每一个字符都用一个十进制数来表示

注:ASCII的全称是American Standard Code for Information Interchange,美国标准信息交换代码,该表由国际标准组织制定0

ASCII码表详情请猛戳我

2、字符的表示

在计算机中,所有的数据必须以数字的形式表示,字符页不例外,根据ASCII码表的规定,每个字符一个数字表示,而这个数字在0-127之间,在C/C++里,char/short/int都可以表示整数,由于字符的数值范围较小,平常都用char类型变量来代表字符,例如:

3、字符的显示

可以使用printf将一个字符显示到控制台,使用格式化字符串 %c 表示

例如:

4、字符常量

在C/C++代码中,直接用字符常量来表示一个字符的ASCII码,使用单引号表示,例如:

char ch = 'A';

上例中'A'就是字符常量,它是一种字面常量,表示一个整数65

字符常量在任何时候都和它的ASCII码是等价的,虽然在形式上它是写成了'A',但编译器在处理代码的时候总是把它当成65来处理

以下几种写法是等价的,都会输出一个字符'A'

#include <stdio.h>

int main(){

    printf("Got: %c \n", 65);   // 十进制
printf("Got: %c \n", 'A'); // 字符
printf("Got: %c \n", 0x41); // 十六进制 }

由于字符常量完全等价于一个整数,所以我们可以这样来写

#include <stdio.h>

int main(){

    char ch1 = 'A' + 1;     // 结果为66
char ch2 = 'B' - 1; // 结果为65
char ch3 = 'C' - 'A'; // 结果为2 printf("ch1: %d \nch2: %d \nch3: %d \n", ch1, ch2, ch3); }

还可以用int和short来表示字符

int ch1 = 'A';
short ch2 = '9';

显示字符'Y'的ASCII码

#include <stdio.h>

int main(){

    printf("%d \n", 'Y');   // 'Y'是一个整数,所以可以用%d显示出来

}

字符数组

在C/C++里,用一个char型数组来表示一串字符,称为"字符数组",把这一串字符称为"字符串"

字符串的两种初始化方法

  • 想普通数组一样初始化
char str[6] = {'h', 'e', 'l', 'l', 'o', '\0'}    // 这样定义要以\0结尾
  • 特殊的初始化方法(常用)
char str[6] = "hello";

最新文章

  1. mongo学习笔记(一):增删改查
  2. RBAC类的方法
  3. Codevs 1021 (玛丽卡)
  4. 微软Asp.net MVC5生命周期流程图
  5. *.location.href 用法:
  6. log4net封装类 zz
  7. Python网络编程——主机字节序和网络字节序之间的相互转换
  8. Silverlight类百度文库在线文档阅读器(转)
  9. 计蒜客模拟赛D1T3 蒜头君的坐骑:用dfs转移dp
  10. 关于json.parse和json.stringify的区别
  11. iOS开发之将字典、数组转为JSON字符串方法
  12. PHP7 学习笔记(五)安装event扩展(libevent)
  13. AllJoyn+Android开发案例-android跨设备调用方法
  14. dataway_代码规范
  15. C# byte array 跟 string 互转
  16. LwIP raw api下使用tcp keep alive
  17. Linux学习之CentOS(五)----网卡的配置
  18. php反射方法信息
  19. Java基础-正则表达式(Regular Expression)语法规则简介
  20. window7配置SQLserver 允许被远程连接

热门文章

  1. [Git] Automatically running tests before commits with ghooks
  2. c++Socket 异步通讯
  3. java单例模式(两种常用模式)
  4. log4net根据日志类型写入到不同的文件中
  5. OD: Format String, SQL Injection, XSS
  6. inline-block容器的高度撑开位置
  7. EF中使用SqlQuery进行参数化查询时抛出异常
  8. 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 &lt;machineKey&gt;
  9. 捷易拍与springMVC系统结合
  10. MapDB:专为Java设计的高性能的数据库