作者在 2011-03-22 13:25:07 发布以下内容
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:
输入一行字符(字符个数小于255),统计其中不同的大写和小写字母的个数。每个数字占一行。
输入:
一行测试数据
输出:
不同的大写和小写字母的个数,每个数字占一行。
输入样例:
Da; cDb。。.” D
输出样例:
1
3
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>//isupper和islower函数的头文件
int main()
{
char a[100];int b[100]={0};int c[100]={0};
int i=0,k=0;
int little=0;int big=0;
gets(a);
while(a[i]!='\0')
{
if(isupper(a[i]))//其实这里不用判断,让两个if语句在同一个while语句中会少用一半的时间
{
while(k<26)
{
if(a[i]=='A'+k&&b[k]==0)
{
big++;
b[k]=1;
}
k++;
}
}
k=0;
if(islower(a[i]))
{
while(k<26)
{
if(a[i]=='a'+k&&c[k]==0)
{
little++;
c[k]=1;
}
k++;
}
}
i++;
}
printf("%d\n%d\n",big,little);
return 0;
}
#include <stdlib.h>
#include <string.h>
#include <ctype.h>//isupper和islower函数的头文件
int main()
{
char a[100];int b[100]={0};int c[100]={0};
int i=0,k=0;
int little=0;int big=0;
gets(a);
while(a[i]!='\0')
{
if(isupper(a[i]))//其实这里不用判断,让两个if语句在同一个while语句中会少用一半的时间
{
while(k<26)
{
if(a[i]=='A'+k&&b[k]==0)
{
big++;
b[k]=1;
}
k++;
}
}
k=0;
if(islower(a[i]))
{
while(k<26)
{
if(a[i]=='a'+k&&c[k]==0)
{
little++;
c[k]=1;
}
k++;
}
}
i++;
}
printf("%d\n%d\n",big,little);
return 0;
}