1012 - C語言程式設計教程(第三版)課後習題6.2
阿新 • • 發佈:2018-11-02
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;
}