前面我们多次提到了字符串,字符串是多个字符的集合,它们由" "包围,例如"http://c.biancheng.net"、"C语言中文网"。字符串中的字符在内存中按照次序、紧挨着排列,整个字符串占用一块连续的内存。

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

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

要想处理汉语、日语、韩语等英文之外的字符,就得使用其他的字符类型,char 是做不到的,我们将在下节《在C语言中使用中文字符》中详细讲解。

字符的表示

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

下面的例子演示了如何给 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 int main() { 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 %cn", a, b, c); return 0; }

运行结果:

1 $ X

1 $ X

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

字符与整数

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

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

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

请看下面的例子:#include int main() { char a = 'E'; char b = 70; int c = 71; int d = 'H'; printf("a: %c, %dn", a, a); printf("b: %c, %dn", b, b); printf("c: %c, %dn", c, c); printf("d: %c, %dn", d, d); return 0; }

输出结果:

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[] = "http://c.biancheng.net"; char *str2 = "C语言中文网";

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

完整的字符串演示:#include int main() { char web_url[] = "http://c.biancheng.net"; char *web_name = "C语言中文网"; puts(web_url); puts(web_name); printf("%sn%sn", web_url, web_name); return 0; }原文始发于:在C语言中使用英文字符

c语言中的编程英文怎么看,在C语言中使用英文字符相关推荐

  1. 河南工业大学c语言考试题库,c语言题库(编程)河南工业大学 河工大 c语言期末考试题库...

    c语言题库(编程)河南工业大学 河工大 c语言期末考试题库 (27页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 C语言题库编程河南工业 ...

  2. 关于PTA中的编程任务“辛巳蛇宝男赵中瑞”

    关于PTA中的编程任务"辛巳蛇宝男赵中瑞" 以下是题目的描述 任务03-02-08 "辛巳蛇宝男"赵中瑞 任务描述 2001年01月24日是农历辛巳蛇年的春节( ...

  3. 程序设计C语言函数定义,编程函数的定义之C语言

    编程函数的定义之C语言 类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型.接下来,小编为您介绍了编程函数的定义之C语言,感谢您的阅读! 无参函数的定义 无参函数定义的`一般形式如下:类 ...

  4. c语言滑稽的编程,12个滑稽的C语言面试问答——《12个有趣的C语言问答》评析(5)...

    A,局部变量的返回地址 Q:下面的代码有问题吗?如果有,如何修改? #include int* inc(int val) { int a = val; a++; return &a; } in ...

  5. c语言人机互动编程,单片机人机交互系统的C语言编程简介.ppt

    单片机人机交互系统的C语言编程简介 第5章 单片机人机交互系统的C51语言编程 5.1 单片机的输入/输出端口 5.2 LED数码管显示器 5.3 LED数码管点阵显示器 5.4 液晶显示器 5.5 ...

  6. 大一下c语言期末考试编程题,大一上期末C语言编程题

    大一上期末C语言编程题 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 11.90 积分 用公式 π/4 = 1-1/3+1/5-1/7--,编程序 ...

  7. arduino语言是c语言吗,Arduino编程基础(一)——Arduino语言

    Arduino语言 Arduino使用C/C++编写程序,虽然C++兼容C语言,但这是两种语言,C语言是一种面向过程的编程语言,C++是一种面向对象的编程语言.早期的Arduino核心库使用C语言编写 ...

  8. go语言 c# 混合编程 pdf,【C# 调用 Go 语言】0x1 Hello Golang-Go语言中文社区

    C# 和 Golang 都不是世界上最好的语言.在不同的业务场景下,C# 和 Golang 各有所长.如果要编写一个网络程序,显然 Golang 更擅长,而如果要编写一个桌面 GUI 程序,那么 C# ...

  9. 将serversocket 写在按钮事件中连接不上_看 Netty 在 Dubbo 中如何应用

    作者:莫那 鲁道http://cnblogs.com/stateis0/p/9062171.html 目录 dubbo 的 Consumer 消费者如何使用 Netty dubbo 的 Provide ...

最新文章

  1. maya mel uf8_MAYA MEL问题
  2. Session丢失,都是CDN惹的祸
  3. C++中有关queue常用函数的用法及其注意要项
  4. java堆内与堆外数据交互_Java:汇总堆外数据
  5. 计算机组织菜单在哪里,1,计算机显示菜单在哪里
  6. ecshop程序结构说明
  7. java注释 param_@Param注解的用法解析
  8. Java的接口与继承
  9. quartz 每30秒执行一次_Net Core 使用 Quartz
  10. php oracle打印输出,php 连接oracle 导出百万级数据
  11. c# 调用java webservice 参数获取不到_用C#.NET调用Java开发的WebService传递int,double问题,出现java无法获得值!...
  12. 进程之基础知识(一)
  13. 最大公约数c语言,C语言求最大公约数代码及解析
  14. 法文 java教学,学习法语的12个技巧?
  15. 2029年会实现通用人工智能吗?
  16. 如何选购计算机流程,新手小白如何选购一款适合自己的笔记本电脑?
  17. windows 查看IP地址或端口是否可以连接-常用命令
  18. Matlab 2018a安装教程和破解方法(附Crack文件)
  19. oracle添加触发器权限,Oracle 'after create'触发器授予权限
  20. React组件开发流程——利用React构建简单的可检索产品数据表

热门文章

  1. 剑指Offer——你真的看懂无领导小组面试了吗?
  2. eclipse 安装birt插件
  3. 数值转换lexical_cast的使用
  4. 最有名的文字冒险游戏 – 巨洞冒险
  5. 当电影放映迎来高新技术:李安新作开启视听盛宴
  6. 音频处理基础入门笔记
  7. 【小梅哥SOPC学习笔记】Altera SOPC嵌入式系统设计教程
  8. STM32入门 - 芯片简介
  9. linux 使用jstack_技德发布JStack 2.0,在Linux系统中无缝运行移动应用
  10. Stirling's approximation