一 概述

在C语言中,是将字符串作为字符数组来处理的,也就是使用一个一维字符数组来存放字符串。字符串中的字符是逐个存放在数组元素中的。

我们在讨论字符串长度的时候实际上讨论的是字符串的实际长度,而非对应字符数组的长度。如,定义一个字符数组长度为100,实际有效的字符只有40个。那我们如何通过实际代码知道位置字符串的长度呢。在C语言中规定了一个"字符串结束的标志"。即以字符"\0"作为结束标志。如果字符数组存在若干字符,前面的8个字符都不是空字符"\0",而第9个字符为空字符"\0",则认为数组中字符串的有效长度为8。

C系统中使用字符数组存储字符串的常量的时候会自动加一个'\0'作为结束符。

二 说明

'\0'代表ASCII码为0的字符,从ASCII码表中可以查到。ASCII码为0的字符并不是一个可以显示的字符,而是一个"空操作符",即它什么也不做,只是用来作为字符串结束的标志不会产生附加的操作或增加有效字符,只是达到一个辨别的标志。

三 系统识别结束的原理

例子:printf("How do you do? \n")

实际上,在向内存中存储时,系统自动在最后一个字符'\n'的后面加上一个'\0',作为字符串结束的标志。而在执行printf函数时,没输出一个字符检查一次当前字符是否为'\0',如果是'\0'就会停止输出。

四 字符串常量初始化字符数组

如 char c[] = {"I am happy"}; 此时我们可以省略花括号,直接写成:char c[] = "I am happy"; 后者直接使用字符串常量初始化字符数组。

C语言中字符串和字符串的结束标志相关推荐

  1. C语言中字符型和字符串型的对比

    C语言中字符型和字符串型的对比 字符型:     C语言中字符用单引号括起来,存储方式以ASCII编码二进制形式存储,占用一个字节     如:'a','b','c','A'等     注意:在C语言 ...

  2. java 汉字个数_java语言中如何获取字符串中汉字的个数

    java语言中如何获取字符串中汉字的个数? [实例描述] 字符串中可以包含数字,字母.汉字或者其他字符.使用Character 类的isDigit()方法可以判断字符中的某个字符是否为数字,使用Cha ...

  3. c语言如何赋值空字符串,c语言中如何给字符串数组赋值

    c语言中如何给字符串数组赋值 1.问题 这是我写的 struct student { int x; char name[10]; }; void main() { student st: st.nam ...

  4. c语言常用字符串处理函数6,【总结】C语言中常见的字符串处理函数

    ------------------------------------------------------------------------------------------- C语言中没有字符 ...

  5. c语言中用于获取字符串长度的函数是,C语言中求字符串长度的函数的几种实现方法...

    C语言中求字符串长度的函数的几种实现方法 1.最常用的方法是创建一个计数器,判断是否遇到'\0',不是'\0'指针就往后加一. int my_strlen(const char *str) { ass ...

  6. c语言能返回字符串吗,C语言中函数返回字符串的四种方法

    在讨论着四种方法以前,首先要对函数有一个简单的认识,不管是在形实结合时,仍是在return语句返回时,都有一个拷贝的过程.你传进来的参数是个值,天然函数在工做以前要把这个值拷贝一份供本身使用,你传进来 ...

  7. c语言中空格字符怎么表示_C语言中常用的字符串操作函数

    作者:陈太浪 出处:https://home.cnblogs.com/u/TomHe789/ C语言中提供了许多的字符串操作函数,常见的字符串操作函数有以下几种: 1.求字符串长度的函数 原型函数:s ...

  8. c语言中的格式化字符串

    C语言中格式字符串的一般形式为:  % [ 标志 ][ 输出最小宽度 ][. 精度 ][ 长度 ] 类型 , 其中方括号[]中的项为可选项. 一.类型 我们用一定的字符用以表示输出数据的类型,其格式符 ...

  9. C语言中如何定义字符串?

    C 语言中,可以使用字符数组来定义字符串. 例如: char str[20] = "Hello, world!"; 在这个例子中,定义了一个长度为 20 的字符数组 str,并初始 ...

  10. C语言中几个字符串输出

    printf 功能 c语言中产生格式化输出的函数(定义在 stdio.h 中).向终端输出(显示器等) 用法 int printf(const char *format,[argument]); fo ...

最新文章

  1. 远程ssh shell 脚本 tcgetattr: Inappropriate ioctl for device错误
  2. linux安装nginx源码,CentOS7源码编译安装Nginx
  3. Docker selenium自动化 - 使用python操作docker,python运行、启用、停用和查询容器实例演示
  4. debian 文件夹中文件大小_Linux下查看文件和文件夹大小 删除日志
  5. linux学习笔记(4):Ubuntu终端字符界面下的重启与关机命令
  6. 电脑怎么打印文件步骤_电脑中毒后怎么办 电脑中毒后解决方法【详细步骤】...
  7. Hive2.1.1的安装教程(元数据放在本地Mysql)
  8. 网格(UED所谓栅格化)方案生成器
  9. Mapper代理详解,Mapper代理的作用以及用法,结合之前写的mybatis框架讲解、mapper代理的好处
  10. tp框架like模糊查询报错
  11. 通过tcpdump+wireshark来抓包分析TCP长连接和短连接的区别
  12. u盘修复计算机系统,如何使用u盘修复系统
  13. 升级macOS Catalina 后辅助功能空白无法添加的问题
  14. JavaScript 实现雪花效果
  15. 解决Apache/2.4.39 (Win64) PHP/7.2.18 Server at localhost Port 80问题
  16. 小白重装系统教程_小白U盘重装原版win7系统教程
  17. GraphX与GraphLab、Pregel的对比
  18. Qt 通过条件编译区分Debug和Release代码
  19. shell 判断网线插拔_linux检测网线插拔状态
  20. 数学建模——五步建模法

热门文章

  1. JetDrive (SD卡)在windows写保护,解决方法
  2. TokenInsightGate.io首届全球数字资产做市商大赛暨第三届量化大赛闭幕 | TokenInsight...
  3. 贪心算法——背包问题
  4. 姿态角是怎么测量出来的
  5. 爬虫框架Scrapy框架的介绍 一看就明白
  6. 浪潮之巅第五章 — 奔腾的芯(英特尔—Intel)(全)
  7. Pod libWebp 报错方式解决
  8. Github使用ssh密钥登陆
  9. 【专题速递】音频生成、TTS和AIGC在音乐上的运用
  10. 2022低压电工复训题库及在线模拟考试