C语言中字符串的结束标志是【'\0'】。C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串,字符串总是以【'\0'】作为结束符。

'\0'就是8位的00000000,因为字符类型中并没有对应的这个字符,所以这么写。'\0'就是 字符串结束标志。

'\0'是转译字符,意思是告诉编译器,这不是字符0,而是空字符。空字符\0对应的二进制为00000000,而数字0为00110000。

原来,在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。字符串总是以'\0'作为串的结束符。因此当把一个字符串存入一个数组时,也把结束符 '\0'存入数组,并以此作为该字符串是否结束的标志。有了'\0'标志后,就不必再用字符数组的长度来判断字符串的长度了。

说明:

把一个字符串赋值给数组:u8 str1[]={"cxjr.21ic.org"}; 实际上数组str1在内存中的实际存放情况为:c x j r . 2 1 i c . o r g '\0' 。这后面的'\0'是由C编译系统自动加上的。所以在用字符串赋初值时一般无须指定数组的长度, 而由系统自行处理。把字符数组str1中的字符串拷贝到字符数组str2中。串结束标志'\0'也一同拷贝。

个案:

1、当数组长度不够。假设我们指定了数组长度,如:u8 str1[13]={"cxjr.21ic.org"}; 由于字符组str1的长度为13,所以后面的信息会丢失,即'\0'丢失。

2、如果在给数组赋值时,把每个字符单独用引号括起来。也会丢失'\0'。如:u8 str1[]={'c','x','j','r','.','2','1','i','c','.','o','r','g'}; 如果希望数组以'\0'结束,则可以写成以下三者之一:

u8 str1[]={"cxjr.21ic.org"}; //字符串赋值

u8 str1[]={'c','x','j','r','.','2','1','i','c','.','o','r','g','\0'}; //人工添加

u8 str1[14]={'c','x','j','r','.','2','1','i','c','.','o','r','g'}; //故意给数组预留一个空位

代码示例:

#include

#include

#include

using namespace std;

int main()

{    char s[] = "10";

printf("%s\n", s);

printf("s[1]:%d\n", s[1]);

printf("s[2]:%d\n", s[2]);

printf("s[1]:%c\n", s[1]);

printf("s[2]:%c\n", s[2]);    char u[] = {"hello"};

cout << sizeof(u) / sizeof(*u) << endl;    char v[] = "hello";

cout << sizeof(v) / sizeof(*v) << endl;

}

运行结果:

声明:

本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

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

  1. c语言中字符 12是多少,c语言中字符串的讲解(DOC可编).doc

    c语言中字符串的讲解(DOC可编).doc 第一部分:字符串的概念 ---字符串:用双引号引起来的一串字符.在C语言,系统将自动的为字符串添加一个结束标志\0 ,该结束标志不作为字符串的实际长度,但作 ...

  2. C语言中字符串结束符

    C语言中字符串结束符'\0' '\0'就是8位的00000000,为字符NULL,因为字符类型中并没有对应的这个字符,所以这么写.'\0'就是字符串结束标志. 1. 字符串变量str[] 在C语言中没 ...

  3. c语言中字符串数组的地址存放以及%s输出单个字符导致程序崩溃的问题

    代码 总结下c语言中字符串数组的地址存放问题 #include <iostream> using namespace std; #include<bits/stdc++.h>i ...

  4. Go语言中字符串的查找方法小结

    这篇文章主要介绍了Go语言中字符串的查找方法小结,示例的main函数都是导入strings包然后使用其中的方法,需要的朋友可以参考下 1.func Contains(s, substr string) ...

  5. [工具]-C语言中字符串的形式打印16进制数据

    C语言中字符串的形式打印16进制数据. 这样写,输出更直观些 #define PRINT_BUF_MAX (32) #define TAG_STRING_MAX (32) static void pr ...

  6. C语言中字符串的处理方式(一)

    写多了 Java 代码,对 String 类 很是喜爱,可惜经典的 C 语言没有...最近在做程序过程中,发现对C语言字符串的处理很模糊,一会儿用数组,一会儿用指针,一会儿又引入 string.h.. ...

  7. C语言中字符串的处理方式

    http://www.cnblogs.com/robin-ty/archive/2010/09/03/1817294.html 交流纽带" --<C语言程序设计 现代方法> 写多 ...

  8. C语言中字符串和字符数组的区别

    C语言中字符串和字符数组的区别 1.基本概念 2.代码分析 3.总结 1.基本概念 字符串和字符数组很相似,但是有本质上的区别. (1) C语言中,字符串是双引号括起来的单个或多个字符的集合,编译器自 ...

  9. 有关C语言中字符串入栈的理解

    C语言中字符串的入栈 写在前面 对于C语言中变量入栈的顺序实际上需要具体情况具体分析,不同操作系统下的编译器可能对此有不同的解释,即使对于同一个C的编译器而言,参数设定的不同也会导致编译器调整局部变量 ...

  10. c语言字母转换数字代码,实现c语言中字符串和数字的相互转换的代码

    实现c语言中字符串和数字的相互转换的代码 引导语:代码就是程序员用开发工具所支持的语言写出来的源文件,是一组由字符.符号或信号码元以离散形式表示信息的明确的'规则体系.以下是百分网小编分享给大家的实现 ...

最新文章

  1. 节点部署_国际电联设定大星座部署节点要求
  2. java基本类型(内置类型)取值范围
  3. 最新Django2.0.1在线教育零基础到上线教程(十四)- 全剧终
  4. Android 功耗优化(1)----使用Battery Historian生成电量消耗报告
  5. android gridview滚动监听,检测GridView滚动速度 – Android
  6. 【二叉树】二叉树遍历总结
  7. 推荐几个非常有用的工具
  8. 微信小程序——简单的售后服务单
  9. 英文速记教程(Handwrite)
  10. Linux自学之旅-基础命令(Ext4文件系统)
  11. 梦三花重金修改服务器,2021年3月31日维护公告:新门派花果山
  12. 大学课程 | 《计算机系统结构》详细知识点总结
  13. 2007年日历带农历表_2007年农历阳历表 2007年农历表 2007年日历表
  14. 7.物理地址(MAC地址)是什么?
  15. [分类] Jzoj P1320 拯救奶牛
  16. 基于QQ空间热修复原理实践
  17. Windows修改本地域名解析文件hosts
  18. 微信红包“昙花一现”?看传统企业中兴如何玩转“微信红包”
  19. WebStorm下载及破解
  20. 基于TI-RTOS的CC2650DK开发(20)---硬件抽象层

热门文章

  1. Unity中的Compute Shader
  2. python矩形法求定积分_如何用矩形法(梯形法)求定积分
  3. Linux服务端rpm包安装Jenkins
  4. 热点的ap频段哪个快_热点ap频段有什么区别
  5. tor浏览器匿名上网_如何使用Tor匿名浏览
  6. python 读取png图片 透明度
  7. mysql索引失效的几种情况
  8. 配置谷歌android依赖镜像
  9. 中国人在发表英文论文时汉字姓名究竟应该如何写?
  10. 华为认证云计算考什么?