當前位置:首頁 » 編程語言 » c語言輸入是否為空
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言輸入是否為空

發布時間: 2023-01-08 15:11:20

『壹』 用c語言怎麼判斷一個字元串是否為空

空格不算是空字元串,str=""這樣的才算是空字元串,裡面什麼都沒有,而str=" "是有內容了,這個str存儲了一個字元(空格),如果你要把空格也算是空字元串,那麼要稍作修改:
char str[] = " ";
int len = strlen(str), i = 0;
if (len > 0)
{
while(i < len && str[i++] == ' ');
if (i < len) // 字元串不空
else // 空字元串
}

『貳』 C語言怎麼判斷輸入的是一個空行

可以通過gets讀入整行數據。

gets的功能是讀入一行數據,並把換行符替換成字元串結束符,所以如果是空行,那麼讀到的字元串第一個元素就是結束符。

通過判斷gets的結果,即可知道是否為空行。

參考代碼如下:

charbuf[100];
gets(buf);
if(buf[0]=='')printf("是空行 ");

『叄』 c語言怎麼判斷輸入的字元串是空格

#include<stdio.h>
#include<string.h>
struct info
{
char name[20];
char tel[20];
} person[4]; //一般定義結構體最好放到main函數的外面,這樣結構清晰
int main()//最好把void換為int,不過你那樣也對,這只是我的習慣
{

int i,j;
char findname[20];
char empty[20]=" ";
char a[20]="break";//我其實沒理解你這是干什麼的,反正應該不是你的問題
printf("please input a list\n");
for(i=0; i<4; i++)
scanf("%s %s",person[i].name,person[i].tel);//去掉&,字元串不需要,這里你最好再看一下字元串,
while(strcmp(findname,a)!=0)
{
printf("\nPlease input a name\n");
gets(findname);//scanf 會自動跳過空格,所以換成gets
for(i=0; i<4; i++)
{
if(strcmp(findname,person[i].name)==0)
{
printf("%s\n",person[i].tel);
break;
}
if(strcmp(findname,empty)==0)
{
for(j=0; j<4; j++)
printf("%s %s\n",person[j].name,person[j].tel);
break;
}
}

}
return 0;
}

『肆』 用C語言怎麼判斷一個字元串是否為空

就是用strlen(變數)==0來判斷一個字元串是否為空,空格也是一個字元,字元串結束的標識符是'\0'

『伍』 C語言中怎麼判定輸入是否為空

1.使用strlen函數來判斷輸入是否為空,如果返回值為0,就是空。
strlen做的是一個計數器的工作,它從內存的某個位置(可以是字元串開頭,中間某個位置,甚至是某個不確定的內存區域)開始掃描,直到碰到第一個字元串結束符''為止,然後返回計數器值(長度不包含「」)。
原 型:extern unsigned int strlen(char *s);
頭文件:string.h
格 式:strlen (字元數組名)
功 能:計算字元串s的(unsigned int型)長度,不包括''在內
說 明:返回s的長度,不包括結束符NULL。

2.常式:

#include<stdio.h>
#include<string.h>
intmain(){
chars[1000];
while(gets(s)!=NULL){//循環讀入s
if(0<strlen(s))//根據判斷輸出輸入是否為空
printf("%s不為空",s);
else
printf("%s為空",s);
}
return0;
}

『陸』 用C語言怎麼判斷一個字元串是否為空

空格和字元串為空的概念本來就不一樣,
如樓上所說空格本來就代表一個字元,
而空字元串直接為"\0"
如果你要把空格的字元串也定義為空字元串的話
就要加判斷
空格的ASCII碼為32
你只需要再多加一個遍歷判斷就OK

int IsEmpty = 0;
int length = strlen(變數);
int n;
//遍歷整個字元串,如果全為空格,則返回字元串也為空
for(n=0;n<length;n++)
{
//判斷ASCII碼是否為32
if(變數[n]==32)
IsEmpty=1;
else
{
IsEmpty=0;
//存在一個字元則跳出循環
break;
}
}
if(length == 0)
printf("字元串為空");
else if(IsEmpty)
printf("字元串為空");
else
printf("字元串不為空");

『柒』 用C語言怎麼判斷一個字元串是否為空

if (i < len) // 字元串不空 else // 空字元串 scanf ("%s", str); // 這里改下就行了! int len = strlen(str), i = 0; if (len > 0){while(i < len && str[i++] == ' '); if (i < len) // 字元串不空 else // 空字元串 #include <stdio.h> #include <string.h> void main(){char *str;scanf ("%s", str); int len = strlen(str), i = 0; if (len > 0){while(i < len && str[i++] == ' '); if (i < len) printf ("%s\n", str); else printf ("字元串為空\n");}else printf ("字元串為空\n"); } 追問: 不對啊,你試下編譯一下?按空格不會判斷的,有輸進去字元時也有點小問題。總之,你這個程序編譯時通過,但是沒有能實現效果。要不你試下。我將你剛剛的程序段完善了一下,跟你這個差不多,但效果實現不了。所以,高手。點解呢? 回答: 現在手頭沒vc6,我想辦法調試下,==啊。 補充: 對了,忘記了,用scanf是不讀取空格的,scanf會將空格識別為結束號,要用gets(str); #include "stdio.h" #include "string.h" void main(){char str[100]; // 很久沒用指針,直接上面那樣有錯,暫時先改數組了。 int len, i = 0; gets (str); len = strlen(str); if (len > 0){while(i < len && str[i++] == ' '); else printf ("字元串為空\n");}else printf ("字元串為空\n");