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. SQL Server 查询基础
  3. 分布式锁-zk临时节点
  4. 以连咖啡为例丨设计小程序的流量裂变体系
  5. HDU_2577 How to Type(DP)
  6. 创建QT项目只有一个pro文件
  7. MZOJ 1345 hero
  8. mysql explain分析
  9. html和css的缺点,个人缺点20个
  10. 详细讲解3DMAX导出插件-tiamo
  11. php网页源码库存管理系统进销存mysql数据库web结构html布局
  12. 嵌入式开发:调试嵌入式软件的技巧
  13. yourenduwanglai的鬼话连篇(九)
  14. 3、NC系统接口集(持续更新)
  15. ios 关于MBProgressHUD简单实用
  16. 计算机二级程序设计提交,程序设计方法与风格(计算机二级复习指导)
  17. c盘满了但是d盘有空间如何扩容-windows
  18. sqlserver 中 @@rowcount的简单用法
  19. 联想收购诺基亚?玩笑而已别太当真
  20. 基于腾讯信鸽推送平台详细说明

热门文章

  1. 分享一个我常用的信息差赚钱渠道
  2. Excel怎么锁定单元格
  3. 语音转文字的测试用例
  4. 办公室计算机应用简单知识,新入职办公室人员基础电脑操作知识.doc
  5. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 解决方法
  6. 《当程序员的那些狗日日子》六
  7. pr如何跳到关键帧_全套pr视频剪辑教程[叫兽七叔讲解]
  8. url 转码 java_URL 转码遇到的坑
  9. Android studio 之 Kotlin Not Configured
  10. c语言编程中exp,c语言中exp是什么函式