在C语言中使用英文字符
字符串是多个字符的集合,它们由" "包围,例如"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语言中使用英文字符相关推荐
- c语言中的编程英文怎么看,在C语言中使用英文字符
前面我们多次提到了字符串,字符串是多个字符的集合,它们由" "包围,例如"http://c.biancheng.net"."C语言中文网". ...
- C语言学习笔记---8C语言中的英文字符
在C语言中,单个字符的数据类型是char,长度是1字节,且只能容纳ASCII码表中的字符,也就是英文字符.字符类型由单引号' '包围,字符串由双引号" "包围. //正确的写法 c ...
- c语言中文网_在C语言中使用中文字符
大部分C语言教材对中文字符的处理讳莫如深,甚至只字不提,导致很多初学者认为C语言只能处理英文,而不支持中文.其实C语言是一门全球化的编程语言,它支持世界上任何一个国家的语言文化,包括中文.日语.韩语等 ...
- C语言中字符串和字符数组的区别
C语言中字符串和字符数组的区别 1.基本概念 2.代码分析 3.总结 1.基本概念 字符串和字符数组很相似,但是有本质上的区别. (1) C语言中,字符串是双引号括起来的单个或多个字符的集合,编译器自 ...
- 输出英文字母,字符串中所有英文字符
Description 给定一个字符串,将字符串中的所有英文字母找出并输出. Input 若干组数据,每组数据只有一个字符串. Output 字符串中所有英文字符. Sample Input abc1 ...
- c语言中常用的字符函数以及字符串函数
文章目录 前言 一.常用字符串函数 1.strlen() 2.strcpy() 3.strcat() 4.strcmp() 5.strstr() 6.memcpy() 6.memmove() 二.qs ...
- c语言空格有什么作用,空格在c语言中怎么表示 C语言中的空格字符怎么表示
c语言中表示空格的是什么代码? 分析如下: 不是所有字符都需要转义的,空格直接就敲空格,或者使用ASCII码值赋值为32. 空格没有转义字符.合法转义字符如下:\a 响铃(BEL) .\b 退格(BS ...
- c语言中大写英文字母所占字节,Java中字符编码和字符串所占字节数 .
首 先,java中的一个char是2个字节.java采用unicode,2个字节来表示一个字符,这点与C语言中不同,C语言中采用ASCII,在大多数 系统中,一个char通常占1个字节,但是在0~12 ...
- linux 宽字符串,C语言中的多字节字符与宽字符
C语言原本是在英文环境中设计的,主要的字符集是7位的ASCII码,8位的byte(字节)是最常见的字符编码单位.但是国际化软件必须能够表示不同的字符,而这些字符数量庞大,无法使用一个字节编码. C95 ...
最新文章
- CentOS安装crontab
- RabbitMQ 延迟队列实现定时任务的正确姿势,你学会了么?
- Shell命令-文件及目录操作之mkdir、mv
- 080703 雨&星巴克的菜单
- vsscode beego 没有提示_轻松搭建基于 Serverless 的 Go 应用(Gin、Beego 举例)
- android 查看图片、保存图片
- python pip安装及出现的问题
- Q96:PT(3):基于噪声的纹理(Noise-Based Textures)(0)——概述
- 【NCRE】——Winform窗体控件随窗体大小而变化
- listview的使用一例
- BeanUtils简介
- the CBD process terminated
- P 哥的桶(线段树+线性基)
- win10蓝牙已配对连接不上_win10蓝牙耳机显示已配对但没有声音的具体处理方法...
- 【linux运维】还在为访问服务器工具犯愁吗?这六款Linux常用远程连接工具你肯定得知道
- laravel-admin引用wangEditor编辑器 使用二:上传视频/音频(2)
- day 09--函数和模块
- 计算机 实验室安全准入制度,华东理工大学实验室安全准入制度
- 项目经理,你真的有领导力吗?
- BiLiBiLi视频转存方法
热门文章
- Python 实现注意力机制
- pytorch使用tensorboard可视化loss、acc
- 重庆市计算机专科学校排名榜公办,2021年重庆公办大专院校名单及排名,重庆公办专科学校排名榜...
- 来一份OI-Contest比赛的爆零诊断指南C++
- ArcGIS:如何新建图层组并添加数据、切换数据视图和布局视图、修改符号系统?
- MCGS嵌入软件配置教程
- cascading style sheet第一课
- 移远EC20 Opencpu方案调试记录 - 打电话 发短信 接收短信 定位(郑州新正圆)
- CodeLab:Android fundamentals 07.3:Broadcast receivers
- 条款51:编写new和delete时需固守常规