C语言,怎样判定读取的字符串为只有换行符的空行?

fopen后,用fgets(str,MAX,rf)读取一行

怎样判定读取的字符串str为只有换行符的空行?
strlen(str)==1可不可以?
最标准的语句是什么?
=================
只考虑windows下VC++6.0 Console程序

我刚才试了一下
if(strlen(str)==1)可以达到目的
if(a[0]=='\0')
和if(strlen(str)==0)都达不到目的
因为我试过,空行的长度strlen是1而不是0
if(a[0]=='\0')貌似标准答案可惜程序不理睬啊

sscanf(str,"%s",strtmp)
好像没必要用这个函数吧?

------------------
刚才又试了一下
if (str[0]=='\n')可以
也许这是最佳做法哦。。。

第1个回答  2009-08-13
楼主您好
如果要用应该是strlen(str)==0;
因为gets遇到回车符换行符就会用\0给字符串结尾
所以
使用
if(a[0]=='\0')
是效率最高的
第2个回答  2009-08-13
sscanf(str,"%s",strtmp)

如果这个函数返回 0 或 EOF 那就表示 用 fgets 得到的当前行( str ) 是空行
第3个回答  2009-08-13
不同平台里面换行符可是不一样的。

最好是全字匹配。
相似回答