C语言中字符串结束符'\0'

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

1. 字符串变量str[]

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

参考:C 字符串常量和字符串变量定义和区别

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

2. 定义字符数组

三种方式:

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'}; //故意给数组预留一个空位

注意:

  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'};

参考:C语言中字符串结束符'\0'

转载于:https://www.cnblogs.com/TianchiLiu/p/9866134.html

C语言中字符串结束符相关推荐

  1. C语言中字符串结束符'\0'

    本质 '\0'就是8位的00000000,因为字符类型中并没有对应的这个字符,所以这么写.'\0'就是 字符串结束标志. '\0'是转义字符,意思是告诉编译器,这不是字符0,而是空字符.空字符\0对应 ...

  2. c语言字符串转成二进制,C语言中字符串如何转换为二进制、八进制、十进制、十六进制...

    在C语言某个程序当中需要把文本16进制转换成对应的16进制数,比如字符串"0x1a"转换成10进制的26,可以用以下函数来实现 相关函数: atof, atoi, atol, st ...

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

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

  4. C语言中的结束符‘\0‘

    C语言中的结束符'\0' '\0'是C语言中的字符串结束标志.它的十进制输出:0,字符型输出:空字符(什么都没有,空空如也). (C语言中字符串是用英文输入法的双引号括起来,而字符是用英文输入法的单引 ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 《日本制造业白皮书2018》深度解读:非连续创新、现场力、互联工业
  2. 爬虫必备工具,掌握它就解决了一半的问题
  3. RMAN CONFIGURE解释
  4. 联想linux笔记本评测,联想(lenovo)G460AL-ITH Linux笔记本电脑CPU测试评测-ZOL中关村在线...
  5. admin——django自带数据库管理工具
  6. 基于STM32CUBE MX 的TM1640的使用例程
  7. Java敏感词过滤 工具类
  8. Softwaredistribution与系统瘦身
  9. coreldraw橙子怎么画_CorelDRAW(CDR)设计绘制质感的橙子和冰块实例教程
  10. Java 1.4(打印表格)编写程序,显示以下表格。
  11. 【MineCraft】-- 学习我的世界Mod制作引雷附魔书与事件
  12. 微博开发者大会SAE宣讲ppt
  13. 张赐荣:计算机网络快速入门教程
  14. Access to XMLHttpRequest at 'XXX' from origin 'XX' has been blocked by CORS policy: No 'Access-Contr
  15. 华硕传更新软件遭到劫取 安全出现严重问题
  16. 微服务(一)微服务理念
  17. tflearn教程_TensorFlow/TFLearn学习案例:泰坦尼克
  18. 6路网络IO控制器远程带模拟量采集模块可联网PLC串口服务器Modbus
  19. 微信群营销方案微信群营销步骤
  20. Oracle数据库编程

热门文章

  1. (二)nesting解读simulations>examples
  2. 永远不要去依赖别人_不要依赖别人的说说
  3. 安装插件iClean pro, 期间与 pp助手冲突
  4. 社交网络与诺基亚N平台将引爆手机游戏产业
  5. html和div有什么区别,div与css区别是什么?
  6. github copilot插件安装(vscode)
  7. vue - props 声明数组和对象
  8. Python解偏微分方程
  9. 机器学习——先验分布和朴素贝叶斯
  10. 基于html5的智慧校园选课系统的设计与实现