㈠ 用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語言怎麼判斷一個字元串是否為空
就是用strlen(變數)==0來判斷一個字元串是否為空,空格也是一個字元,字元串結束的標識符是'\0'
㈢ 用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");
㈣ 用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++
C語言中,可以用gets函數來接收輸入的字元串(包含空格)。
格式:gets(字元數組名);
功能:gets函數用於將輸入的字元弊消串內容存放到指定的字元數組中,輸入結尾的換行符'\n'被換成'\0'存儲在該數組中。
例:
char str[20]; // 定義一個字敏卜或符數組,大小為20個位元組
gets(str); // 將用戶輸入的字元串(可以包含空橋伍格)存儲到字元數組str中,以回車結束輸入
printf("%s", str); // 輸出用戶輸入的字元串(包含空格)
㈥ c語言怎樣判斷一個字元串全為空格
你好!
不管是多少頃斗個空雀改磨殲型格的字元串,使用trim後,結果是空串。
你可以自己試驗下,string st = 「 ";st = st.trim();
㈦ 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語言輸入是怎麼區分空格和回車的
C語言中回車,換行,空字元與空格:fgets和gets在讀取換行符的區別
摘要:C語言中,我們常常從終端輸入,並且輸出到終端,鍵盤上的回車,輸入到緩沖區以後,變成了什麼字元?是『\0』還是『\n』?回車與換行有什麼區別?本文主要為你講解C語言中的換行、回車等控制字元,幫助區別它們的實質。
1.空格
它的ASCII碼為0x20,而不是0x00。其中,gets可以讀入空格字元。
2.回車(\r)
這里有一個很重要的區分點:回車符號和回車鍵。
回車(『\r』)效果是輸出回到本行行首,結果可能會將這一行之前的輸出覆蓋掉。例如執行:
puts("hello
world!\rxxx");
在終端輸出的是:
xxxlo
world!
如果將上面的字元串寫入文件中,例如執行:
char
*s
=
"hello
world!\rxxx";
FILE
*str
=
fopen("t.txt","r");
fwrite(s,
16,
1,
str);
用文本編輯器打開t.txt。顯示的效果將由打開的編輯器所決定。
vi的和基和效果為
windows記事本效果為
可以看到,vi將\t用^M代替,而記事本就沒有顯示該字元。
3.回車鍵
關於「回車鍵」的來歷,還得從機械英文打字機說起。在機械英文打字機上,有一個部件叫「字車」,每打一個單詞,「字車」就前進一格。當打滿一行字元後,打字者就得推動「字車」到起始位置,這時打字機會有兩個動作響應:一是「字車」喚盯被歸位,二是滾筒上卷一行,以便開始輸入下一行,這個推動「字車」的動作叫「回車」。後來,在電動英文打字機上,人們增加了一個直接起「回車」作用的鍵。這個新增的鍵就被稱為「回車鍵」。
回車的ASCII代碼
16進制是「0x0d」
10進制是「13」
在某些語言中可以用"\r"表示。
不同的操作系統對回車的處理是不同的:
在Unix/Linux系統中,換行用"\n"一個字元表示,
而在Windows系統中,則用"\n\r"兩個字元表示。
4.換行(\n)10
如果要實現換行的效果,在終端我們只需要使用'\n'即可;如果要想在win系統下的文本中實現換行的效果,需要使用『\n\r』兩個控制字元
5.C語言對於字元串的處理
首先,回車鍵按下以後,鍵盤緩沖區中存放的是字元\n,如果我們用getchar,那麼我們讀入鋒手的是字元「\n」;如果我們使用gets進行讀取,那麼「\n」將被作為表示的結束的控制字元讀取。然後,gets會自動把這個\n轉換成'\0'存儲在字元串中。
另外,如果從終端讀取一個字元串,gets會把最後的換行符\n換成\0,而fgets從stdin讀入的時候,不會對\n進行處理。
㈨ c語言怎樣判斷一個字元串全為空格
while是找到字元串的末尾,'\n'是所有字元串腔答的最後一個字元,for循環是用來判斷是不會迴文的伍余慧。j是從第一個字元開始,i是從最後一個字元開始,比較完一個字元後,j++,i--,一旦發現某個毀悄地方首位是不相等的,則不是迴文退出
㈩ C語言里如何判斷空格
代碼如下:
int main(void) {
char c;
printf("請輸入要測試的字元 ");
scanf("%c",&c);
if(c == ' '){
printf("是空格 ");
}else{
printf("不是空格 ");
}
return 0;
}
C語言對字元判斷是否為空格有兩種方式:
代碼:if(c=='')printf("c是空格");這種方法比較直觀,直接比較當前字元和空格是不是相等,是的話就是空格了。代碼演示如下: