相关文章推荐
健壮的芹菜  ·  matlab ...·  5 天前    · 
腹黑的跑步机  ·  android ...·  2 周前    · 
宽容的苦咖啡  ·  LayUI switch 开关监听 ...·  3 月前    · 
买醉的饭盒  ·  Aggregate 2 PromQL ...·  11 月前    · 
风流倜傥的炒粉  ·  OpenCV Linux 安装 ...·  1 年前    · 

'\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 <iostream>
    #include <stdio.h>
    #include <string.h>
    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语言中的关于字符串的操作,字符分类函数,字符转换函数,如:strlen,strcpy,strcmp,strcat,strncpy,strncmp,strncat,strstr,strtok,strerror。,以及内存函数,比如:memcpy。memmove,memset等。
    C语言字符串的常用操作
    C语言是一种非常流行的编程语言,它支持各种数据类型,包括整数、浮点数、字符和字符串等。在 C语言中,字符串是一种特殊的数据类型,它由一系列字符组成,以\0字符结尾。本文将介绍 C语言中字符串的相关知识,包括字符串的定义、初始化、赋值、输入输出、比较、拼接、查找和替换等。
    【C语言—零基础第十三课】字符串的奥秘
    在我们的印象里好像就是汉字和符号。而在C语言中是值由数字、字母、下划线组成的一串字符。当然我觉得还有我们的中文汉字呀,当然中文字符也属于字符串。字符串是干什么的?整型实型是用来存储整型实型变量的,我们可以猜测字符串就是来存储字符串变量的。没错了,确实是这样的。在C语言中单个字符使用char类型来存储,而大于一个字符却无法使用一个类型来存储。所以我们就使用到了数组,因为数组可以存储多个类型相同的数据。 字符串中的’\0‘