1. 程式人生 > >1012 - C語言程式設計教程(第三版)課後習題6.2

1012 - C語言程式設計教程(第三版)課後習題6.2

1012 - C語言程式設計教程(第三版)課後習題6.2
時間限制:1秒
記憶體限制:128兆

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

輸入
一行字元

輸出
統計值

樣例輸入

aklsjflj123 sadf918u324 asdf91u32oasdf/.’;123

樣例輸出

23 16 2 4

根據題目要求,分為四種情況進行計次,為了能進行空格的輸入,
可以使用while與getchar結合輸入,或者使用gets輸入

//方案一, while與getchar結合 
#include<stdio.h>

int main
() { char ch; int m=0, n=0, x=0, y=0; while((ch=getchar())!='\n') { if ((65 <= ch&&ch <= 90) || (97 <= ch&&ch <= 122)) n++; else if(ch>=48&&ch<=57) x++; else if(ch==32) m++; else y++
; } printf("%d %d %d %d",n,x,m,y); return 0; }
//方案二, gets輸入
#include<stdio.h>

#include<string.h>

int main()

{
 	
 	char s[1005];
 	
 	int m=0, n=0, x=0, y=0, len;
 
 	gets(s);
 	
 	len=strlen(s)-1;
 	
 	for(int i=0;i<=len;i++)
 	
 	{
 		
 		 if ((65 <= s[i]&&s[i] <=
90) || (97 <= s[i]&&s[i] <= 122)) n++; else if(s[i]>=48&&s[i]<=57) x++; else if(s[i]==32) m++; else y++; } printf("%d %d %d %d",n,x,m,y); return 0; }