C零基础课程-09-文字数据的定义和使用

Posted shellmad

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C零基础课程-09-文字数据的定义和使用相关的知识,希望对你有一定的参考价值。

什么是文字数据(单个字符与字符串)

之前课程中学习了数值型变量如何定义与使用,可以用于存放整数、小数。
C语言中的文字型数据,可以存放文字(如字母、标点符号)。
C语言中文字数据分为单个字符以及字符串。
单个字符由单引号括起来,字符串由双引号括起来。

'a'
"Hello, world"
int main(int argc, char* argv[])
{
    printf("%c
", 'A');
    printf("%s
", "Hello, World");
 return 0;
}

单个字符在内存中占用1个字节(因此我们可以使用char存储它),其储存的内容为ASCII码表中字符所对应的数值

int main(int argc, char* argv[])
{
    char chValue = 'A';
    printf("%c
", chValue);
    chValue = 'Z';
    printf("%c
", chValue);
 return 0;
}

ASCII码表

因为计算机内存中其实只能存数字。所以,字符类型,其实是按照ASCII码表的约定,存储ASCII码表中字符所对应的数字的值
技术图片

int main(int argc, char* argv[])
{
    char chValue = 65;
    printf("%c
", chValue);
    chValue = 90;
    printf("%c
", chValue);
 return 0;
}

字符串

使用双括号括起来的字符,是字符串,它的特点:

  • 在内存中,字符对应的数值,按顺序依次排列
  • C编译器会自动在字符串的尾部加上结束标志0(内存中的数值为0)

字符定义的几种方式

对于字符,可以以****后接数字的方式定义字符,其数字可以为八进制或者十六进制

int main(int argc, char* argv[])
{
 char chValue1 = '15';
 char chValue2 = '';
 char chValue3 = 'x0C';
 char chValue4 = 101;
 return 0;
}
int main(int argc, char* argv[])
{
    char chValue1 = '15'; //8进制
    char chValue2 = ''; //8进制
    chValue2 = '0'; //注意与上一行进行区分
    char chValue3 = 'x0C'; //16进制
    char chValue4 = 101; //10进制
    return 0;
}

ASCII码的扩展与转义字符

ASCII码扩展

C89标准时代的ASCII码只规定了0~127,之后扩展了ASCII码范围,使得128~255也有其意义。
但是因为控制台的设置编码方式不同,扩展的字符不一定能正常显示。

转义字符

有一些特殊的ASCII码,无法从键盘直接输入。直接记忆其数值不方便使用。
我们可以使用转义字符,以****开头,后接特殊的字母,这样的转义字符

  • 单引号,‘
  • 双引号, "
  • 反斜杠,
  • 退格键,
  • 换行,
  • 回车,
  • 水平制表符,
#include <stdio.h>


int main(int argc, char* argv[])
{
    printf("%c
", ''');
    printf("%c
", '"');
    printf("%c
", '');
    printf("abcdef
");

    return 0;
}

以上是关于C零基础课程-09-文字数据的定义和使用的主要内容,如果未能解决你的问题,请参考以下文章

C零基础课程-03-VS的入门使用及设置

C零基础课程-13-关系运算符与关系表达式

零基础学C语言知识总结十一:C语言的内存四区

c语言基础课程视频

C零基础课程-05-printf的基本使用

《英雄编程体验课》第 11 课 | 前缀和