• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 在C语言中使用英文字符

在C语言中使用英文字符

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2022-04-30

匿名通过本文主要向大家介绍了等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
前面我们多次提到了字符串,字符串是多个字符的集合,它们由" "包围,例如"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 <stdio.h>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 %c\n", a, b, c);    return 0;}
运行结果:
1 $ X
1 $ X

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

字符与整数

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

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

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

请看下面的例子:
#include <stdio.h>int main(){    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);    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 <stdio.h>int main(){    char web_url[] = "http://c.biancheng.net";    char *web_name = "C语言中文网";    puts(web_url);    puts(web_name);    printf("%s\n%s\n", web_url, web_name);    return 0;}
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-28浅谈C语言编程中程序的一些基本的编写优化技巧
  • 2017-05-28C++德州扑克的核心规则算法
  • 2017-05-28全局静态存储区、堆区和栈区深入剖析
  • 2017-05-28C++实现自顶向下的归并排序算法
  • 2017-05-28基于VC中使用ForceInclude来强制包含stdafx.h的解决方法
  • 2017-05-28详解设计模式中的模板方法模式及在C++中的使用
  • 2017-05-28C++实现strcmp字符串比较的深入探讨
  • 2017-05-28基于VC编写COM连接点事件的分析介绍
  • 2017-05-28C++中求组合数的各种方法总结详解
  • 2017-05-28C语言高斯消元法的使用详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • VC++的if语句应用范围分析
    • 判断指定的进程或程序是否存在方法小结(vc等)
    • opencv 做人脸识别 opencv 人脸匹配分析
    • c语言中用字符串数组显示菜单的解决方法
    • C++实现调用系统时间简单示例
    • 详解C++编程中的vector类容器用法
    • 解析四方定理的应用
    • C语言 文件的随机读写详解及示例代码
    • C语言解字符串逆序和单向链表逆序问题的代码示例
    • 使用c语言生成随机数的示例分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有