c中怎样判断字符串为空是最好的

yjdlut 2007-07-16 10:18:05
如上面的问题
假如字符串szWord要判断它是否为空
strcmp(szWord,"");好呢
还是szWord[0]==0;好呢
...全文
20458 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzlovme 2011-03-03
  • 打赏
  • 举报
回复
用strlen函数直接抛出错误,目前还没找到好的解决办法
54gym 2008-03-31
  • 打赏
  • 举报
回复
你们只判断了第一个字符,还有空格情况。
yandongyue 2007-07-30
  • 打赏
  • 举报
回复
szWord[0]==0; 这个根本就是错的吧
wjlsmail 2007-07-30
  • 打赏
  • 举报
回复
ASSERT(_tcslen(str) == 0)
无病呻吟2 2007-07-30
  • 打赏
  • 举报
回复
char* ch2;
if ( ch2[0]==0)
cout<<"字符串位空"<<endl;
这样运行绝对是有问题的
ch2 不一样位0
会出现内存错误
vs2005测试
wengch 2007-07-26
  • 打赏
  • 举报
回复
to ribut9225(幽灵庄主)
以下这句
char szWord[100] = NULL;
如果编译通过了,我把你的C++编译器给吃了
====================================================
你要是能吃的了我把我家桌子吃了
superyys 2007-07-26
  • 打赏
  • 举报
回复
to ribut9225(幽灵庄主)
以下这句
char szWord[100] = NULL;
如果编译通过了,我把你的C++编译器给吃了
zkingjm 2007-07-26
  • 打赏
  • 举报
回复
在定义szWord的时候比较好的习惯是:
char szWord[100] = {0};

判断是否为空:
if( szWord[0] )
printf("不空");
else
printf("空");
zp_cool 2007-07-26
  • 打赏
  • 举报
回复
都对 汉堡包是人才 !
ForestDB 2007-07-26
  • 打赏
  • 举报
回复
if(!(*szWord))
cceczjxy 2007-07-23
  • 打赏
  • 举报
回复
要用szWord==NULL来判断,
szWord[0]==0 //这样应该是段溢出.

=======================================

段溢出?解释一下

-----------------------------------------
一个空指针,取第一个字符比较.应该是溢出.
不过这要看大家怎么理解"字符串为空"了.
可能我理解错了.
ccplus2007 2007-07-23
  • 打赏
  • 举报
回复
if (strlen(szWord)== 0)
prgmBaggio 2007-07-22
  • 打赏
  • 举报
回复
要用szWord==NULL来判断,
szWord[0]==0 //这样应该是段溢出.

=======================================

段溢出?解释一下
harry123 2007-07-22
  • 打赏
  • 举报
回复
我认为:
if( str == NULL || strlen(str) == 0 ) 是最保险的
JoeM 2007-07-21
  • 打赏
  • 举报
回复
?
对不起,少打一个字,更正一下。

比较有意思。
我觉的如果要判断C风格的字符串是否为空
(注意我这里说的是C风格的字符串,
即以'\0'结尾的char/wchar_t指针/数组)。
首先,要看字符串指针是否有效;
然后,要看你对字符串为空的定义,比如通常以'\0'作为字符串
的结尾,如果一个有字符串'\0' == pchar[0],那么就可以说该字符串
为空,C库中的strlen内部就是这么实现的;
最后,如果你对字符串为空的定义不是通常所理解的,你可以实现
自己的判断逻辑,比如,有字符串"\0hello world!",根据你的定义它
是为空还是不空呢?!!
星羽 2007-07-21
  • 打赏
  • 举报
回复
szWord[0]==0

szWord[0]=='\0'

JoeM 2007-07-21
  • 打赏
  • 举报
回复
比较有意思。
我觉的如果要判断C风格的字符串是否为空
(注意我这里说的是C风格的字符串,
即以'\0'结尾的char/wchar_t指针/数组)。
首先,要看字符串指针是否有效;
然后,要看你对字符串为空的定义,比如通常以'\0'作为字符串
的结尾,如果一个有字符串'\0' == pchar[0],那么就可以说该字符串
为空,C库中的strlen内部就是这么实现的;
最后,如果你对字符串为空的定义不是通常所理解的,你可以实现
自己的判断逻辑,比如,有字符串"\0hello world!",根据你的定义它
是为空还是空呢?!!
lexchou 2007-07-21
  • 打赏
  • 举报
回复
if(!str || !*str)puts("str是空");
if(str && *str)puts("str不是空");
mymtom 2007-07-21
  • 打赏
  • 举报
回复
szWord[0] == 0;
vsfan 2007-07-21
  • 打赏
  • 举报
回复
回复人:hmgujie(汉堡包) ( 一级(初级)) 信誉:100 2007-7-19 12:04:18 得分:0
?

szWord.enpty()
=================
这个就离谱了,大哥,是empty吧。。。
而且这个是java的风格,C/C++不是这样的风范
虽然可能的确可以这样写
加载更多回复(16)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧