十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
效果是一樣的,第二個if語句在判斷時會立刻調(diào)用函數(shù)并且將函數(shù)返回值返回到函數(shù)調(diào)用處,第一個只不過是你把返回值賦值給了一個變量。

我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、臨沂ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的臨沂網(wǎng)站制作公司
空格不算是空字符串,str=""這樣的才算是空字符串,里面什么都沒有,而str=" "是有內(nèi)容了,這個str存儲了一個字符(空格),如果你要把空格也算是空字符串,那么要稍作修改:
char str[] = " ";
int len = strlen(str), i = 0;
if (len 0)
{
while(i len str[i++] == ' ');
if (i len) // 字符串不空
else // 空字符串
}
這樣定義:
int haveaspace(char *s)
{
int i;
for(i=0;s[i];i++)
if(isspace(s[i]))
return 1;
return 0;
}
這是一個使用這個函數(shù)的一個例子:
#include stdio.h
#include ctype.h
int haveaspace(char *s)
{
int i;
for(i=0;s[i];i++)
if(isspace(s[i]))
return 1;
return 0;
}
int main()
{
char s1[]="aaa1A+";
char s2[]="aaa1 1A+";
if(haveaspace(s1))
printf("%s包含空白字符\n",s1);
else
printf("%s不包含空白字符\n",s1);
if(haveaspace(s2))
printf("%s包含空白字符\n",s2);
else
printf("%s不包含空白字符\n",s2);
return 0;
}
就是用strlen(變量)==0來判斷一個字符串是否為空,空格也是一個字符,字符串結(jié)束的標(biāo)識符是'\0'
c語言如何判斷為空可用讀文件操作函數(shù)的返回值來判定,如:
函數(shù): int?fgetc(FILE *stream); ?//從參數(shù)stream 所指的文件中讀取一個字符. 若讀到文件尾而無數(shù)據(jù)時便返回EOF.
當(dāng)以讀方式打開文件后,第一次使用fgetc()就返回EOF,則表明文件是空文件。
參考代碼:
#include?stdio.h
void?main()
{
FILE?*fp;
int?ch;
fp=fopen("新建文本文檔.txt","r");
ch=fgetc(fp);
if?(?ch==EOF?)
printf("file?is?null\n");
else
printf("read?a?char?:?%c\n");
fclose(fp);
}
注:
EOF不是文件中的一個字符,而是一個標(biāo)志,C中定義EOF為-1,可在stdio.h中查到。
讀文件函數(shù),如:fgetc()在讀到文件尾而無數(shù)據(jù)時便會返回EOF。
空文檔是指字節(jié)數(shù)是0的文檔。如果文檔中有字符,則不是空文檔。
EOF就是文件尾的意思,一般被編譯器定義為-1
倒不是說文件自己會自動生成一個EOF標(biāo)志,而是你在用函數(shù)讀入文件數(shù)據(jù)的時候,函數(shù)總會返回一個狀態(tài),是讀取成功還是失敗,那么這個狀態(tài)怎么表示呢,所以就約定俗成定義一個標(biāo)識符表示這個狀態(tài),就有了EOF,BOF等等