关于C语言数组字符0的存储问题

Python09

关于C语言数组字符0的存储问题,第1张

char

a[

5 ]

=

{

'a', 'b',

'c',

'd',

'\0'

}

这个数组5个元素,最后一个就是存储它了。只是你输出看不到而已!

\0(ascii 0) 字符串结束标志,只要字符串数组大小够大,编译器会自动加上。

如果在给数组赋值时,把每个字符单独用引号括起来。也会丢失'\0'。如:

u8 str1[]={'c','x','j','r','.','2','1','i','c','.','o','r','g'}

一般来说只是在内存中存在,输出时不会显示,没见到你的输出语句,无法判断

1、在C语言中,可以通过库函数strlen来计算字符串的长度,也可以通过循环计数来求取字符串长度。

函数原型:unsigned

int

strlen(char

*str)

能:统计字符串str中字符的个数,不包含'\0'

值:返回字符个数

2、用strlen函数实现:

char str[20]

int len // 保存数组的长度

scanf("%s", str)

len = strlen(str) // 计算字符数组str的长度

注:需将头文件#include<string.h>添加进源文件中。3、用循环来实现:

char str[20]

int len=0 // 保存数组的长度

scanf("%s", str)

while(str[len] != '\0') // 未检测到结束字符

{

len++ // 统计字符数组str的长度

}