C语言作为当时备受好评的编程语言,一直到现在都没有退出人们的视野。java之父说过“对于每一个计算机专业人士,他们所接触的第一种编程语言就是C语言。(C语言)有着如此多的令人惊奇的地方,这也使得学习过程非常有趣。”由此可以看出C语言所带来的影响。下面将对C语言基础中的字符型变量常量进行一个说明。

1.字符和字符串类型数据

计算机应用领域中有一个重要的部分,就是文字处理。这个领域的程序必须能使用和处理字符形式的数据。在C中,有两种字符型数据:字符还有字符串。打个比方,‘b’这种只有一个字母的是字符,而‘bed’这种连续的就是字符串。每一个字符都有对应的ASCII码,一个字符的存储占用一个字节,所以ASCII码形式上是0-255之间的整数。因此C语言中字符型数据和整型数据可以通用。例如,字符"B"的ASCII码值用二进制数表示是1000010,用十进制数表示是66,在计算机中的存储如下图。由图可见,字符"B"的存储形式实际上就是一个整型数66,所以它可以直接与整型数据进行算术运算、混合运算,可以与整型变量相互赋值,也可以将字符型数据以字符或整数两种形式输出。以字符形式输出时,先将ASCII码值转换为相应的字符,然后再输出;以整数形式输出时,直接将ASCII码值作为整数输出。(在文章的最下面有ASCII码对照表)

2.字符型常量

字符常量也称为字符常数。在C语言中,字符常量就是被括在一对单引号中的一个字符。例如:'c'、's'、'x'、'B'、'b'、'$'、'?'等都是字符常量,要注意的是空格字符是‘ ’,‘D’和‘d’是不同的字符常量。以上形式的字符常量是可以显示的字符,但还有一些难以用一般形式表示的不可显示字符,C语言提供了一种特殊的字符常量,即用一个转义标识符"\\"开头,后续需要的转义字符来表示。

下面列举一些常用的转义字符的字符常量:

转义字符是一种特殊的字符常量,它的意思是将转义符“\\”后面字符原来的含义进转换,变成某种特殊的系统中约定的含义。像‘\\f’中的f已经不再代表字符常量,因为前面加上了‘\\’,所以f就变成了换页符。转义字符‘\\ddd’并不是直接写ddd,而是在后面填上1-3位的八进制数,例如“\\015”。其中015是八进制字符串,它在ASCII码中表示的是回车,也表示为十进制13的字符。转义字符"\\x1f"是"\\xdd"形式的转义字符,其中"1f"是十六进制字符串,它表示了ASCII码表中编码为十进制31的字符,也就是▼。

再举一个可运行的代码行例子:

printf("a=%f\n",a);

其中“\n”就是换行的转义字符,基本上每一个程序中都会有这样的代码行。

3.字符型变量

上面说了字符型常量,现在所说的字符型变量是用于存放字符常量的,字符型变量是用来保存单字符的一种变量,所以一个字符型变量占用1个字节的内存。字符型变量的关键字是 char,使用时只需在说明语句中指明字符型数据类型和相应的变量名即可。

例如:

char c1,c2;/先说明c1,c2是字符型变量/

c1='c';c2='d';/先后把c1,c2赋值为c,d/

4.字符串常量

字符串常量和字符型变量相差了一个字,字符串常量就是用来保存多个字符的变量。字符串常量要用到双引号来作为边界符的作用,但它并不是字符串常量中的一部分。

例如: "hey my friend!",这是一个合法的字符串变量。

刚刚接触C的初学者很容易混淆一个概念,"a"和'a',要注意的是这两个是两个完全不用的数据,前者是字符串变量因为用双引号,后者是字符常量。或许你还会有一个问题就是如果在字符串变量中添加双引号要怎么添加?这种情况要在所添加的双引号前面加上"\\"将其转义,使之作为双引号字符起作用。

例如:

printf ("He says:\\"hey my friend!\\"");

C对字符串常量的长度没有限制,程序会自动在字符串的结尾加上一个"\\0"作为字符串常量的结束标志。在输出字符串的时候,程序遇到这个标志才会终止输出。

说到这里,我们会发现字符常量和字符串常量有两个方面的不同:字符常量是用单引号括起的单个字符,而字符串常量是用双引号括起的一串字符;从存储方式看,字符常量在内存中占一个字节,而字符串常量除了每个字符各占一个字节外,其字符串结束符'\\0'也要占一个字节。例如:字符常量'a'占一个字节,而字符串常量"a" 占2个字节,如下图。

5. 字符数据的代码示例

计算字符'A'与整型数据25的和。

程序运行的输出结果如下:   A,65,Z,90

上述程序中a变量的值是'A',实际存放的是'A'的ASCII码65,上文说过它可直接与十进制整型常量25相加,所得整型数据90赋值给变量b,而90是大写字符'Z'的ASCII码,所以可以将a、b变量分别以字符型和整型两种格式输出。有这个例子我们可以知道,字符型数据和整型数据是可以通用的。

ASCII码表:

这里简单的介绍和说明了C语言中各字符型数据的用处、和它们之间的关联。在C语言的编程中,字符型数据也是很重要的,最好能熟练的掌握ASCII码和字符类型的转换和应用。希望本文对于刚刚入门C语言的朋友有一定的帮助。

c语言字符串每个字母加4,C语言基础:各字符型数据相关推荐

  1. 汇编指令中的字母会区分大小写吗?(除了字符型数据,其他地方都不区分)

    汇编不区分大小写,只有字符型数据或者字符串区分大小写. 汇编语言的语句是不区分大小写的,编译软件会自动识别这些语句,但是汇编程序中用户定义的变量.标号等,将区分其大小写,编程时要注意这些区别,以免出错 ...

  2. ACMNO.26 C语言-字符统计2 编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。

    题目描述 编写一函数,由实参传来一个字符串,统计此字符串中字母.数字.空格和其它字符的个数, 在主函数中输入字符串以及输出上述结果. 只要结果,别输出什么提示信息. 输入 一行字符串 输出 统计数据, ...

  3. c语言怎么取字符串首字母,C语言 字符串首字母转换成大写简单实例

    C语言 字符串首字母转换成大写简单实例 C语言 字符串首字母转换成大写简单实例 举例: 输入:this is a book 返回:This Is A Book #include #include #i ...

  4. c语言:写一个函数统计字符串的字母,数字,空格,其他字符

    c语言:写一个函数统计字符串的字母,数字,空格,其他字符 #include<stdio.h> #include<stdlib.h> #include<string.h&g ...

  5. 统计字符个数的c语言程序设计,编写一个函数,由实参传来一个字符串,统计此字符串中字母,数字,空格和其他字符的个数。...

    编写一个函数,由实参传来一个字符串,统计此字符串中字母,数字,空格和其他字符的个数.在主函数中输入字符串以及输出上述结果. [c源程序] #include int letter,digit,space ...

  6. 写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数

    写一个函数,由实参传来一个字符串,统计此字符串中字母.数字.空格和其他字符的个数(C语言) 题目要求:如标题 以下是具体代码: #include <stdio.h> int main() ...

  7. 统计一个字符串中英文字母、空格、数字和其它字符的个数

    1 package demo; 2 import java.util.Scanner; 3 /** 4 * 统计一个字符串中英文字母.空格.数字和其它字符的个数 5 */ 6 public class ...

  8. 【C】编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。

    //编写一个函数,由实参传来一个字符串,统计此字符串中字母.数字.空格和其他字符的个数, //在主函数中输入字符串以及输出上述的结果. #include <stdio.h> #includ ...

  9. 编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。

    题目描述 编写一函数,由实参传来一个字符串,统计此字符串中字母.数字.空格和其它字符的个数,在主函数中输入字符串以及输出上述结果. 只要结果,别输出什么提示信息. 输入 一行字符串 输出 统计数据,4 ...

最新文章

  1. assert()函数用法总结【转】
  2. LA3902 Network (树上dfs)
  3. echsop privilege.php?act=login,ecshop 后台登陆自动退出的一种可能情况(目录大小写问题)...
  4. tar只解压tar包中某个文件
  5. 大话数据结构学习笔记二:算法
  6. 微信公众平台网站开发JS_SDK遇到的bug——wx.config注册提示成功,但部分接口注册失败问题
  7. 中职计算机英语教师教学总结,中职计算机教师教学工作总结 (3000字).doc
  8. Xopsed的编译与安装
  9. Python——高阶函数
  10. java equals getclass_Java equals()方法 – 子类中equals的语义如何确定getClass和instanceof的使用...
  11. 手机 物理分辨率 逻辑分辨率
  12. eclipse主题颜色的下载与设置
  13. oracle中alter用法,Oraclealter用法
  14. 移位运算(计算机组成原理15)
  15. 微信服务商的分账功能总结
  16. 【Calcite】Apache Calcite 框架初探及概念详解
  17. 【excel】如何进行数据排序
  18. 使用Aspose.Pdf修改PDF文件中的表格字段
  19. 人类跌落梦境显示无法连接服务器,人类跌落梦境手游网络连接失败进不去解决办法一览...
  20. 【学习笔记+习题集】字符相关(输入输出流,字典树,AC自动机,后缀自动机)(4598字)(更新至2022.12.28)

热门文章

  1. Java 源程序的良好书写规范有哪些,Java 程序书写规范
  2. java折行_Java源代码的折行规则
  3. php mysql memcache_php的memcache和memcached扩展区别
  4. php数据库find(),db_find()
  5. 《机器学习实战》KNN算法实现
  6. 写得蛮好的linux学习笔记五-认识SHELL(收藏)
  7. javascript 自动化单元测试
  8. Github 下载单个文件
  9. IIS7.5 在已有的WEB网站上配置FTP发布
  10. 华为关于gvrp 的配置,一般步骤以及应用。