輸入一行字元,分別統計出其中的英文字母,空格,數字和其它字元的個數

時間 2021-07-01 01:56:46

1樓:問明

#include

int main()

char c;

int letters=0,spaces=0,digits=0,others=0;

printf("請輸入一串任意的字元:\n");

while((c=getchar())!='\n')if((c>='a'&&c<='z')||(c>='a'&&c<='z'))

letters++;

else if(c>='0'&&c<='9')digits++;

else if(c==' ')

spaces++;

else

others++;

printf("字母有%d個,數字有%d個,空格有%d個,其他有%d個",letters,digits,spaces,others);

return 0;

2樓:1024程式設計師

c語言經典例子之統計英文、字母、空格及數字個數

3樓:匿名使用者

#include

void main ()

{char x;

printf ("請輸入一串字元\n");

//scanf("%c",&x);     這一行應該去掉int letter=0,blank=0,number=0,other=0;

while((x=getchar( ))!='\n')if('a'<=x&&x<='z'||'a'<=x&&x<='z')letter++;

else if(x==' ')

blank++;

else if('0'<=x&&x<='9')number++;

else

other++;

printf("字母的個數%d,空格的個數%d,數字的個數%d,其他符號的個數%d",letter,blank,number,other);

這樣應該可以了,你試試看。

4樓:小橋流水江月

這個問題,在《c語言程式設計》清華大學出版社中有提到,在p78,下面附上**,具體情況你自己看吧:

//輸入一行字元,統計並輸出其中的英文字元,數字字元,空格和其他字元的個數

#include"stdio.h"

void main()

輸入一行字元,分別統計出其中英文字母,空格,數字和其他字元的個數

5樓:凌亂心扉

#include

int main()

printf("字母有%d個,數字有%d個,空格有%d個,其他有%d個",letters,digits,spaces,others);

return 0;

}while語句若一直滿足條件,則會不斷的重複下去。但有時,需要停止迴圈,則可以用下面的三種方式:

一、在while語句中設定條件語句,條件不滿足,則迴圈自動停止。

如:只輸出3的倍數的迴圈;可以設定範圍為:0到20。

二、在迴圈結構中加入流程控制語句,可以使使用者退出迴圈。

1、break流程控制:強制中斷該執行區內的語句,跳出該執行區,繼續執行區域外的語句。

2、continue流程控制:也是中斷迴圈內的執行操作,並且從頭開始執行。

三、利用標識來控制while語句的結束時間。

6樓:程式設計師的每一天

c語言經典例子之統計英文、字母、空格及數字個數

7樓:函念之公承

/*輸入一行文字,找出其中大寫字母,小寫字母,空格,數字,及其他字元各有多少個.

*/#include

intmain()p=

&s[0];

while

(*p!=

'\n')

else

if(('a'

<=*p)&&

(*p<=

'z'))

else

if(''==

*p)else

if((*p

<='9')

&&(*p

>='0'))

else

p++;

}std::cout<<"upper

case:

"<結果:

input

string:

today

is2000/1/1

upper

case:

1lower

case:

6space:

2digit:

6other:

2press

anykey

tocontinue*/

8樓:其鴻熊璞

1while語句:

#include

intmain(void)

else

if(ch=='

')else

if(ch>='0'&&ch<='9')

else

}printf("字母=

%d,空格=

%d,數字=

%d,其它=

%d\n",char_num,kongge_num,int_num,other_num);

return0;}

2,do

while語句:

#include

intmain(void)

else

if(ch=='

')else

if(ch>='0'&&ch<='9')

else

}while((ch=getchar())!='\n')//回車鍵結束輸入,並且回車符不計入

printf("字母=

%d,空格=

%d,數字=

%d,其它=

%d\n",char_num,kongge_num,int_num,other_num);

return0;}

9樓:荊芳菲力蒼

程式如下所示,僅供參考

:#include

void

hlw(char

*s)printf("\n\n輸入的字串中\n\n字母個數為:%d\n數字個數為:%d\n空格個數為:

%d\n其他的字元個數為:%d\n\n",zimu,shuzi,kongge,qita);

}void

main()

希望對你有幫助,呵呵!

10樓:拓跋秀榮鞏寅

((ch=getchar())!='\n')的作用首先將getchar()賦值給ch,然後將ch的值作為括號內賦值表示式的結果參與!=運算.這個表示式在一行內實現了賦值和判斷.

其意義就是判斷getchar取得的字元是否為回車,並把getchar()賦值給ch.

getchar只能接受單個字元

想接受一行字元可以使用getline().getline會在輸入流中讀取連續的字元直到遇到回車符,如果讀入流為空則返回0.

11樓:釁行令家美

其它都沒有問題,第7行最後多了個分號

1while((c=getchar())!='\n');

應該為1

while((c=getchar())!='\n')

12樓:萬理鳳歆美

用字元讀,然後一個個判斷,

你可以一樣寫,比如先統計字母,

然後再加入統計空格,

一個測試正確了再加入其他功能,這樣最後就全了

13樓:我是老才不壞

有這樣的軟體啊!這個軟體據說是電腦上都配備的有。不能,不但能檢測出一段文稿的字數。還能檢測出裡面有多少錯別字,有多少字母,有多少數字。那功能是相當強的,非常實用。

14樓:匿名使用者

這個用c語言還是用c加加寫出來

15樓:示辰檢任真

#include

"stdio.h"

void

main()

printf("%d,%d,%d,%d",yw,kg,sz,qt);}

16樓:代任岑安安

||#include

"stdio.h"

#include

void

main()

printf("%d,%d,%d,%d",yw,kg,sz,qt);}

17樓:丘燦墨梓榆

|可能是優先順序的問題,你在判斷的時候加上括號,還有最後一個不需要條件。

if(i[j]='

')kg++;

else

if((i[j]>='a'&&i[j]<='z')||(i[j]>='a'&&i[j]<='z'))

yw++;

else

if(i[j]>='0'&&i[j]<='9')sz++;

else

qt++;

18樓:墨霖祈從蕾

c++**如下:

有問題還請追問.

#include

using

namespace

std;

intmain()

cout<<"英文字

母:"<

<<"數字:"<

<<"其他:"<

return0;}附圖:

19樓:興義焦亦綠

c語言如下

:struct

result

;void

check(char*

str,struct

result&

ret)

cout

'\0')}

20樓:種令芮德曜

vb可以不?vb的**我有

21樓:隨澤申彤雲

幾個小錯誤,我都標記出來了,另外我的編譯器是預設intmain()如果你的不是,請繼續用voidmain()這個程式已在devc++下編譯通過,並且結果正確。

程式如下,改過的地方用粗體標出了:

#include

#include

void

main()

printf("%d,%d,%d,%d",yw,kg,sz,qt);}

22樓:昝揚第五天驕

主要是沒賦初值

和==才是等於

=是賦值

c語言題目輸入一行字元,分別統計出其中英文字母,空格,數字和其他字元的個數。

23樓:非常可愛

錯誤**:

if('a'<=nextchar<='z'||'a'<=nextchar<='z')

else if('0'<=nextchar<='9')修改後:

#include

int main()

}擴充套件資料

c++輸入一行字元,分別統計出其中英文字母、空格、數字和其他字元的個數。

#include

int main()

printf("%d %d %d %d\n",a,b,c,d);

return 0;}

24樓:匿名使用者

錯誤**:

1.'a'<=nextchar<='z'||'a'<=nextchar<='z';

2.'0'<=nextchar<='9'。

錯誤原因:當多個條件時,需要使用邏輯運算子。

修改後**為:

int main(void)

else if (c == ' ')

else if (c >= '0'&&c <= '9')else

}printf("字母=%d,數字=%d,空格=%d,其他

return 0;}

25樓:匿名使用者

一、問題分析:

輸入一行字母,那麼會以換行結束。所以可以存入陣列,也可以逐個輸入,遇到換行結束。

要統計各個類的個數,就要逐個判斷是哪個分類的。

由於在ascii碼中,數字,大寫字母,小寫字母分別連續,所以可以根據邊界值判斷型別。

二、演算法設計:

1、讀入字元,直到遇到換行結束。

2、對於每個字元,判斷是字母還是數字,或者空格,或者是其它字元。

3、對於每個字元判斷後,對應類別計數器自加。

4、最終輸出結果。

三、參考**:

#include

int main()

printf("%d %d %d %d\n", a,b,c,d);//輸出結果。

return 0;}

26樓:gta小雞

開始↓gets()讀一行字元存到char *s中strlen()函式求字串s長度

陣列cal[4]用來累計字母、空格、數字、特殊字元的個數for(i=0;i

輸出cal陣列各元素的值結束

輸入一行字元,分別統計其中各英文字母出現的次數,求糾錯TAT

你好!程式在你基礎之上改的,你看看吧,滿意請採納 include int main j 0,第一個字元開始printf 請輸入一行字元 scanf s str ip str while ip j 0 j i 1 for i 0 i 52 i 迴圈顯示出有的字元個數 ip str 錯了。改成ip st...

C 輸入一行字元,統計其中單詞的個數 各單詞之間用空格分隔

利用c 的string類物件解決。可以先給物件賦一個空格字串,把從鍵盤接收的字元追加其後,以方便統一查詢。舉例如下 include stdafx.h if the vc 6.0,with this line.include include using namespace std int main i...

C語言如何輸入一行有空格的字串?

c語言輸入一行有空格的字串的方法 1 對於char char s 100 1000 第二個參數列示允許輸入的最大長度while 1000 輸入輸出樣例。輸入 he llo 輸出 he llo 2 對於string string s getline cin,s while getline cin,s ...