C语言之字符串基本知识

1.字符型数据

        同整型数据、实型数据一样,字符型数据包括字符常量和字符变量。在C中,字符常量通常是用单引号括起来的一个字符,如'a'、'='、'?'等都是合法的字符常量。字符常量只能是单个字符而不可以是字符串,同时字符可以是字符集中的任意字符,但需要注意的是字符集中也含有数字,当数字被定义为字符常量时就不能参与运算了,如1和'1',一个是数字,一个是字符常量,并不相同。

2.字符变量

字符常量是用单引号括起来的单个字符,而字符变量是用来存储字符常量的。它的类型说明符为char,如:

char c='c';

在这里定义了一个变量名为c的字符变量,并把字符常量'c'储存在这个字符变量里面,其中的原理和整型变量的定义

int a=1;

是完全一致的。

3.字符型数据的存储和使用

前面提到,字符常量是单引号括起来的单个字符,因为在C中每个字符变量只被分配一个字节的存储空间,因此只能存储一个字符,字符值是以ASCII码的形式存储的,这个只需查找ASCII码表便可轻易获得,例如前面的:

char c='c';

通过char我们知道定义变量的数据类型是字符型,字符变量名是c,当完成字符变量的定义时,系统为字符变量c划分了一个字节的存储空间,在这一个字节的空间里面存储字符常量'c',查询ASCII表可知c的ASCII值为十进制的99,换成二进制就是01100011,所以实际上在这个字节里存储的内容就是01100011,从这里我们可以发现字符变量其实可以和整型量运算,只要让代表该字符量的十进制ASCII码参与运算就好了。

4.字符串常量

字符串常量是双引号括起来的字符序列,例如"CHINA","C Program"等都是合法的字符串常量,与字符常量的单个字符相比字符串常量含有一个或多个字符,前面举例过通过申明字符变量我们可以将字符常量赋值给一个字符变量,但C语言中是没有字符串变量的,所以都是用一个字符数组去存放一个字符串。简单介绍下数组的声明:

char c[10];

在这里我们申明了一个字符型数组,数字10为元素的个数,字符串常量就是通过采用数组的方式存放在内存当中的。

字符常量占用一个字节的内存,而字符串常量占用的字节为其含有的字符数量加1,因为字符串常量有个结束的标志"\0",其ASCII码值为0,所以字符串常量"china"占用的字节数为5+1,所以像字符常量'a'与字符串常量"a",二者虽然看起来区别不大,但前者只用一个字节存放a,后者却需要两个字节存放a和\0。

5.关于字符串和字符数组

字符数组由一组字符常量组成,例如:

char c[5]={'c','h','i','n','a'};

这里申明了一个字符数组,含有5个元素,数组名为c,后面大括号里的内容相当于对该数组做了一个赋值,和

int a=1;

是一个意思,当对所有的数组元素都完成赋值后就可以省略数组长度的申明,因此也可以写成:

char c[]={'c','h','i','n','a'};

系统自动判定长度为5,当然也可以同前面所说的那样,采用字符串常量的方式对一个字符数组进行赋值,如:

char c[]={"china"};

char c[]="china";

这里要注意因为字符串常量含有个“\0”的结束标志,所以相对于用单个字符一个一个赋值,用字符串常量赋值在内存中所占字节数是要多一个的。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
字符文件处理的课程设计是一项旨在帮助学生掌握C语言中字符文件处理的基本概念和技巧的设计任务。这个项目要求学生设计一个程序,能够读取和处理文本文件,并对其中的字符进行一些操作和统计。在设计过程中,学生需要学习和应用C语言中的文件处理函数和字符串函数,以完成各种对文件的读取、写入和修改操作。 首先,学生需要学习如何使用C语言中的文件处理函数,如fopen、fclose、fgets等,来打开和关闭文件,以及读取文件中的内容。然后,学生需要学会使用字符串函数,如strcpy、strcat等,来对文件中的字符串进行操作,比如复制、连接等。 接下来,学生可以设计一些具体的功能,如统计文件中特定字符的个数,删除文件中的某一行或某个字符,替换文件中的某些字符等。这些功能要求学生应用刚才学到的文件处理和字符串操作的知识,编写出相应的代码,并测试其正确性和效果。 此外,学生还可以进一步扩展这个设计,使其能够处理更加复杂的字符文件操作,如按照特定规则排序文件中的内容,提取文件中的特定信息等。这些扩展功能要求学生发挥创造力,灵活应用所学的知识,实现更加复杂的功能。 通过完成字符文件处理的课程设计,学生不仅可以掌握C语言中文件处理和字符串操作的基本技能,还能提高问题分析和解决能力,培养编程思维和创新意识。这些能力将对学生日后的编程学习和实践起到重要的指导和帮助作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值