C语言的字符串为什么以0作为它的结尾?
在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’结束,则可以写成以下三者之一:
(1)u8 str1[]={“cxjr.21ic.org”}; //字符串赋值
(2)u8 str1[]={‘c’,’x’,’j’,’r’,’.’,’2′,’1′,’i’,’c’,’.’,’o’,’r’,’g’,’\0′}; //人工添加
(3)u8 str1[14]={‘c’,’x’,’j’,’r’,’.’,’2′,’1′,’i’,’c’,’.’,’o’,’r’,’g’}; //故意给数组预留一个空位
参考资料来源:百度百科-字符串
C语言 字符串怎么加结束标志
1、首先我们打开C语言编辑软件。
2、然后我们点开“文件”,“新建”,进入界面以后,我们新建一个C的文件。
3、我们要知道C语言中的字符串结束标志是字符‘\0‘。通常情况下我们有两种办法去输出结束标志。
4、直接使用字符‘\0’来输出结束标志。
5、我们还可以利用ASCII码,’\0’的ASCII码是0,所以我们可以利用0x00来输出结束标志。
/0在c语言中是什么意思?
\0在c语言中代表字符串结束符。\0的ASCII码为0,也就是空字符;字符串总是以\0作为串的结束符;因此当把一个字符串存入一个数组时,也把结束符\0存入数组,并以此作为该字符串是否结束的标志。
c语言中’\0’是字符串的结束符,任何字符串之后都会自动加上’\0’。如果字符串末尾少了‘\0’转义字符,则其在输出时可能会出现乱码问题。这个’\0’是占一个位置的,所以如果一个长度为20的字符串要放在一个字符串数组里面的话,这个字符串数组长度至少为21。
具体来说,‘\0’是C++中字符串的结尾标志,存储在字符串的结尾。比如char cha[5]表示可以放4个字符的数组,由于c/c++中规定字符串的结尾标志为’\0′,它虽然不计入串长,但要占内存空间。’\0’是一个ASCII控制字符,是转义字符,代表空字符。因此当把一个字符串存入一个数组时,也把结束符\0存入数组,并以此作为该字符串是否结束的标志。字符’\0’可以直接用ASCII码0表示,0不管是几进制,都是0(十进制),也就是0x00(十六进制)。
扩展资料:
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。