字符串是多个字符的集合,它们由" "包围,例如"https://www.csdn.net/"、"CSDN专业开发者社区"。字符串中的字符在内存中按照次序、紧挨着排列,整个字符串占用一块连续的内存。

当然,字符串也可以只包含一个字符,例如"A"、"6";不过为了操作方便,我们一般使用专门的字符类型来处理。

初学者经常用到的字符类型是 char,它的长度是 1,只能容纳 ASCII 码表中的字符,也就是英文字符。

要想处理汉语、日语、韩语等英文之外的字符,就得使用其他的字符类型,char 是做不到的。

字符的表示

字符类型由单引号' '包围,字符串由双引号" "包围。

下面的例子演示了如何给 char 类型的变量赋值:

//正确的写法
char a ='1';
char b ='$';
char c ='X';
char d =' ';// 空格也是一个字符//错误的写法
char x ='中';//char 类型不能包含 ASCII 编码之外的字符
char y ='A';//A 是一个全角字符
char z ="t";//字符类型应该由单引号包围

说明:在字符集中,全角字符和半角字符对应的编号(或者说编码值)不同,是两个字符;ASCII 编码只定义了半角字符,没有定义全角字符。

字符的输出

输出 char 类型的字符有两种方法,分别是:

  • 使用专门的字符输出函数 putchar;

  • 使用通用的格式化输出函数 printf,char 对应的格式控制符是%c。

请看下面的演示:

#include<stdio.h>
intmain(){
char a ='1';
char b ='$';
char c ='X';
char d =' ';//使用 putchar 输出
putchar(a);putchar(d);
putchar(b);putchar(d);
putchar(c);putchar('\n');
//使用 printf 输出
printf("%c %c %c\n", a, b, c);return0;
}

运行结果:

1 $ X
1 $ X

putchar 函数每次只能输出一个字符,输出多个字符需要调用多次。

字符与整数

我们知道,计算机在存储字符时并不是真的要存储字符实体,而是存储该字符在字符集中的编号(也可以叫编码值)。对于 char 类型来说,它实际上存储的就是字符的 ASCII 码。

无论在哪个字符集中,字符编号都是一个整数;从这个角度考虑,字符类型和整数类型本质上没有什么区别。

我们可以给字符类型赋值一个整数,或者以整数的形式输出字符类型。反过来,也可以给整数类型赋值一个字符,或者以字符的形式输出整数类型。

请看下面的例子:

#include<stdio.h>
intmain()
{
char a ='E';
char b =70;
int c =71;
int d ='H';printf("a: %c, %d\n", a, a);
printf("b: %c, %d\n", b, b);
printf("c: %c, %d\n", c, c);
printf("d: %c, %d\n", d, d);return0;
}

输出结果:

a: E, 69
b: F, 70
c: G, 71
d: H, 72

在 ASCII 码表中,字符 'E'、'F'、'G'、'H' 对应的编号分别是 69、70、71、72。

a、b、c、d 实际上存储的都是整数:

  • 当给 a、d 赋值一个字符时,字符会先转换成 ASCII 码再存储;

  • 当给 b、c 赋值一个整数时,不需要任何转换,直接存储就可以;

  • 当以 %c 输出 a、b、c、d 时,会根据 ASCII 码表将整数转换成对应的字符;

  • 当以 %d 输出 a、b、c、d 时,不需要任何转换,直接输出就可以。

可以说,是 ASCII 码表将英文字符和整数关联了起来。

再谈字符串

前面我们讲到了字符串的概念,也讲到了字符串的输出,但是还没有讲如何用变量存储一个字符串。其实在C语言中没有专门的字符串类型,我们只能使用数组或者指针来间接地存储字符串。

在这里讲字符串很矛盾,虽然我们暂时还没有学到数组和指针,无法从原理上深入分析,但是字符串是常用的,又不得不说一下。所以本节我不会讲解太多,大家只需要死记硬背下面的两种表示形式即可:

char str1[]="https://www.csdn.net/";
char*str2 ="CSDN专业开发者社区";

str1 和 str2 是字符串的名字,后边的[ ]和前边的*是固定的写法。初学者暂时可以认为这两种存储方式是等价的,它们都可以通过专用的 puts 函数和通用的 printf 函数输出。

完整的字符串演示:

#include<stdio.h>
intmain()
{
char web_url[]="https://www.csdn.net/";
char*web_name ="CSDN专业开发者社区";puts(web_url);
puts(web_name);
printf("%s\n%s\n", web_url, web_name);return0;
}

在C语言中使用英文字符相关推荐

  1. c语言中的编程英文怎么看,在C语言中使用英文字符

    前面我们多次提到了字符串,字符串是多个字符的集合,它们由" "包围,例如"http://c.biancheng.net"."C语言中文网". ...

  2. C语言学习笔记---8C语言中的英文字符

    在C语言中,单个字符的数据类型是char,长度是1字节,且只能容纳ASCII码表中的字符,也就是英文字符.字符类型由单引号' '包围,字符串由双引号" "包围. //正确的写法 c ...

  3. c语言中文网_在C语言中使用中文字符

    大部分C语言教材对中文字符的处理讳莫如深,甚至只字不提,导致很多初学者认为C语言只能处理英文,而不支持中文.其实C语言是一门全球化的编程语言,它支持世界上任何一个国家的语言文化,包括中文.日语.韩语等 ...

  4. C语言中字符串和字符数组的区别

    C语言中字符串和字符数组的区别 1.基本概念 2.代码分析 3.总结 1.基本概念 字符串和字符数组很相似,但是有本质上的区别. (1) C语言中,字符串是双引号括起来的单个或多个字符的集合,编译器自 ...

  5. 输出英文字母,字符串中所有英文字符

    Description 给定一个字符串,将字符串中的所有英文字母找出并输出. Input 若干组数据,每组数据只有一个字符串. Output 字符串中所有英文字符. Sample Input abc1 ...

  6. c语言中常用的字符函数以及字符串函数

    文章目录 前言 一.常用字符串函数 1.strlen() 2.strcpy() 3.strcat() 4.strcmp() 5.strstr() 6.memcpy() 6.memmove() 二.qs ...

  7. c语言空格有什么作用,空格在c语言中怎么表示 C语言中的空格字符怎么表示

    c语言中表示空格的是什么代码? 分析如下: 不是所有字符都需要转义的,空格直接就敲空格,或者使用ASCII码值赋值为32. 空格没有转义字符.合法转义字符如下:\a 响铃(BEL) .\b 退格(BS ...

  8. c语言中大写英文字母所占字节,Java中字符编码和字符串所占字节数 .

    首 先,java中的一个char是2个字节.java采用unicode,2个字节来表示一个字符,这点与C语言中不同,C语言中采用ASCII,在大多数 系统中,一个char通常占1个字节,但是在0~12 ...

  9. linux 宽字符串,C语言中的多字节字符与宽字符

    C语言原本是在英文环境中设计的,主要的字符集是7位的ASCII码,8位的byte(字节)是最常见的字符编码单位.但是国际化软件必须能够表示不同的字符,而这些字符数量庞大,无法使用一个字节编码. C95 ...

最新文章

  1. CentOS安装crontab
  2. RabbitMQ 延迟队列实现定时任务的正确姿势,你学会了么?
  3. Shell命令-文件及目录操作之mkdir、mv
  4. 080703 雨&星巴克的菜单
  5. vsscode beego 没有提示_轻松搭建基于 Serverless 的 Go 应用(Gin、Beego 举例)
  6. android 查看图片、保存图片
  7. python pip安装及出现的问题
  8. Q96:PT(3):基于噪声的纹理(Noise-Based Textures)(0)——概述
  9. 【NCRE】——Winform窗体控件随窗体大小而变化
  10. listview的使用一例
  11. BeanUtils简介
  12. the CBD process terminated
  13. P 哥的桶(线段树+线性基)
  14. win10蓝牙已配对连接不上_win10蓝牙耳机显示已配对但没有声音的具体处理方法...
  15. 【linux运维】还在为访问服务器工具犯愁吗?这六款Linux常用远程连接工具你肯定得知道
  16. laravel-admin引用wangEditor编辑器 使用二:上传视频/音频(2)
  17. day 09--函数和模块
  18. 计算机 实验室安全准入制度,华东理工大学实验室安全准入制度
  19. 项目经理,你真的有领导力吗?
  20. BiLiBiLi视频转存方法

热门文章

  1. Python 实现注意力机制
  2. pytorch使用tensorboard可视化loss、acc
  3. 重庆市计算机专科学校排名榜公办,2021年重庆公办大专院校名单及排名,重庆公办专科学校排名榜...
  4. 来一份OI-Contest比赛的爆零诊断指南C++
  5. ArcGIS:如何新建图层组并添加数据、切换数据视图和布局视图、修改符号系统?
  6. MCGS嵌入软件配置教程
  7. cascading style sheet第一课
  8. 移远EC20 Opencpu方案调试记录 - 打电话 发短信 接收短信 定位(郑州新正圆)
  9. CodeLab:Android fundamentals 07.3:Broadcast receivers
  10. 条款51:编写new和delete时需固守常规