C语言学习笔记(十一)--字符串--Part1

本文详细介绍了C语言中的字符串概念,包括字符串字面量、存储方式,强调了''作为字符串结束标志的重要性。讨论了字符数组与字符指针在处理字符串时的角色,以及如何访问字符串中的单个字符。最后,探讨了字符串的输入/输出方法,如使用printf()和scanf(),并提到了gets()和puts()函数的特点。
摘要由CSDN通过智能技术生成

目录

前言

一.字符串字面量

二.字符串的存储

                补充:

三.字符指针

四.字符串的访问和输入/输出

                1.如何访问字符串中的单个字符

                2.字符串的输入/输出


前言

本章内容介绍向函数传递字符串以及字符串输入/输出、复制、连接等常用的字符串处理操作,主要内容有:字符串字面量,字符数组和字符指针,字符串的输入/输出、复制、连接、比较等常用的字符串处理函数,向函数传递字符串,从函数返回一个字符串指针


一.字符串字面量

字符串字面量有时也称字符串常量,它是由一对双引号括起来的一个字符序列,如"Hello","123"都是字符串。无论双引号内是否包含字符,包含多少个字符,都代表一个字符串字面量。注意:字符串字面量不同于字符串常量。例如:"a"是字符串字面量,而'a'是字符常量。 

为便于确定字符串长度,C编译器会自动在字符串的末尾添加一个ASCII码值为0的空操作符'\0',作为字符串结束的标志,在字符串中可以不显示地写出。因此,字符串实际就是由若干有效字符构成且以字符'\0'作为结束的一个字符序列。

二.字符串的存储

C语言没有提供字符串数据类型,因此字符串的存取要用字符型数组来实现。一个字符串可以存在于字符数组中,但一个字符型数组中存储的并非一定是一个字符串,这要看它的最后一个元素是否为'\0',字符数组是由字符构成的数组,仅当其最后一个元素是'\0'时才能表示字符串。字符串结束标志'\0'也占一个字节的内存,但它不计入字符串的实际长度,只计入数组的长度。

 对于字符数组,可以采用和其他数组一样的方式进行初始化。例如:

char str[6] = { 'H','e','l','l','o' ,'\0'};

上面代码定义了一个有6个元素的字符数组str,其前5个元素分别初始化为 'H','e','l','l','o',最后一个元素初始化为'\0'。

注意:如果没有'\0',那么数组str就不代表一个字符串。因为'\0'在内存中也占一个字节的存储单元,所以数组定义的长度应大于等于字符串包括'\0'在内的字符个数。字符数组str初始化后,存储结构如图:

如果省略对数组长度的声明,例如:

char str[] = { 'H','e','l','l','o','\0'};

 那么系统就会自动按照初始化列表中提供

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瑟瑟发抖的可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值