C语言中,如何判断一个字符数组是空的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中,如何判断一个字符数组是空的相关的知识,希望对你有一定的参考价值。

那要看你字符数组定义的时候有没有给初值。

比如char a[10];这元素值都是随机值,无法判断。
如果char a[10]='a','b','c','d','e';这样除了前5的元素后面都是0。可以用0来判断。
如果char a[10]="abcde";这样由于“abcde”是字符串常量,内存中实际还有最后一个0.所以a数组中第6位就是0。同样可以用0来判断。
所有有结束符号0的数组,都可以使用<shring.h>头文件下的函数int strlen(char *)来获得字符数组中元素个数。
参考技术A 没有“空”的条件,是不能判断的。
如果是用于丰放字符串,则
if(s[0]=='\0')则字符串是空串

C语言中,如何判断一个字符数组是空的?

1、字符数组不等价于char字符串指针的

作为数组的时候,定义多长,内存分配空间就是多长
作为char字符串指针,尾部是自动增加了一个\\0字符的

这个就是你用\\0作为结束判断找不到正确结束位置的原因
字符数组是否为空是要自己定义空的概念的

如果你的定义是把字符数组当中字符串来理解的话,第一个元素是否是\\0字符就是判断准则了(可以用src[0] == '\\0'来判断字符串数组是否为空)


2、你定义的数组,就象开了一排5个房间,不管你有没有用,这5个房间都已经分配给你了,没什么空不空的概念,你可以不去住,但空间已经在那里了,里面怎么会没有任何元素呢?难道是真空?嘿嘿.
至于里面到底是什么东西,要看编译器怎么处理了,也可能是随机的数据,因此对程序员来讲是不可预料的,也不可能通过NULL或'\\0'去检查.


3、其是数组没有为空的,只要你申请了空间(数组一定以就在栈上有自己的空间),空间里就有数据,可以输出.然而:

你用memset把数组空间全部赋值为0了,是可以判断的.但是需要判断空间的内容,即:a[i].word[0]
a[i].word是数组word[20]的首地址,当然不会为0,或者‘\\0’

以上是关于C语言中,如何判断一个字符数组是空的的主要内容,如果未能解决你的问题,请参考以下文章

C语言中如何截取字符串的前几个字符?

c语言字符数组如何比较?

Java中如何判断数组元素是不是为空?

C++中如何判断动态数组为空?要具体代码,谢谢

JS判断字符串小括号是否成对合法

halcon中判断图像和数组是空的