C语言中字符串的结束标志是什么
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语言中字符串的结束标志是什么相关推荐
- c语言中字符 12是多少,c语言中字符串的讲解(DOC可编).doc
c语言中字符串的讲解(DOC可编).doc 第一部分:字符串的概念 ---字符串:用双引号引起来的一串字符.在C语言,系统将自动的为字符串添加一个结束标志\0 ,该结束标志不作为字符串的实际长度,但作 ...
- C语言中字符串结束符
C语言中字符串结束符'\0' '\0'就是8位的00000000,为字符NULL,因为字符类型中并没有对应的这个字符,所以这么写.'\0'就是字符串结束标志. 1. 字符串变量str[] 在C语言中没 ...
- c语言中字符串数组的地址存放以及%s输出单个字符导致程序崩溃的问题
代码 总结下c语言中字符串数组的地址存放问题 #include <iostream> using namespace std; #include<bits/stdc++.h>i ...
- Go语言中字符串的查找方法小结
这篇文章主要介绍了Go语言中字符串的查找方法小结,示例的main函数都是导入strings包然后使用其中的方法,需要的朋友可以参考下 1.func Contains(s, substr string) ...
- [工具]-C语言中字符串的形式打印16进制数据
C语言中字符串的形式打印16进制数据. 这样写,输出更直观些 #define PRINT_BUF_MAX (32) #define TAG_STRING_MAX (32) static void pr ...
- C语言中字符串的处理方式(一)
写多了 Java 代码,对 String 类 很是喜爱,可惜经典的 C 语言没有...最近在做程序过程中,发现对C语言字符串的处理很模糊,一会儿用数组,一会儿用指针,一会儿又引入 string.h.. ...
- C语言中字符串的处理方式
http://www.cnblogs.com/robin-ty/archive/2010/09/03/1817294.html 交流纽带" --<C语言程序设计 现代方法> 写多 ...
- C语言中字符串和字符数组的区别
C语言中字符串和字符数组的区别 1.基本概念 2.代码分析 3.总结 1.基本概念 字符串和字符数组很相似,但是有本质上的区别. (1) C语言中,字符串是双引号括起来的单个或多个字符的集合,编译器自 ...
- 有关C语言中字符串入栈的理解
C语言中字符串的入栈 写在前面 对于C语言中变量入栈的顺序实际上需要具体情况具体分析,不同操作系统下的编译器可能对此有不同的解释,即使对于同一个C的编译器而言,参数设定的不同也会导致编译器调整局部变量 ...
- c语言字母转换数字代码,实现c语言中字符串和数字的相互转换的代码
实现c语言中字符串和数字的相互转换的代码 引导语:代码就是程序员用开发工具所支持的语言写出来的源文件,是一组由字符.符号或信号码元以离散形式表示信息的明确的'规则体系.以下是百分网小编分享给大家的实现 ...
最新文章
- 硬盘数据丢失,到底该如何修复?
- SQL Server 查询基础
- 分布式锁-zk临时节点
- 以连咖啡为例丨设计小程序的流量裂变体系
- HDU_2577 How to Type(DP)
- 创建QT项目只有一个pro文件
- MZOJ 1345 hero
- mysql explain分析
- html和css的缺点,个人缺点20个
- 详细讲解3DMAX导出插件-tiamo
- php网页源码库存管理系统进销存mysql数据库web结构html布局
- 嵌入式开发:调试嵌入式软件的技巧
- yourenduwanglai的鬼话连篇(九)
- 3、NC系统接口集(持续更新)
- ios 关于MBProgressHUD简单实用
- 计算机二级程序设计提交,程序设计方法与风格(计算机二级复习指导)
- c盘满了但是d盘有空间如何扩容-windows
- sqlserver 中 @@rowcount的简单用法
- 联想收购诺基亚?玩笑而已别太当真
- 基于腾讯信鸽推送平台详细说明
热门文章
- 分享一个我常用的信息差赚钱渠道
- Excel怎么锁定单元格
- 语音转文字的测试用例
- 办公室计算机应用简单知识,新入职办公室人员基础电脑操作知识.doc
- To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 解决方法
- 《当程序员的那些狗日日子》六
- pr如何跳到关键帧_全套pr视频剪辑教程[叫兽七叔讲解]
- url 转码 java_URL 转码遇到的坑
- Android studio 之 Kotlin Not Configured
- c语言编程中exp,c语言中exp是什么函式