武汉科技大学ACM :1003: 零起点学算法67——统计字母数字等个数

Problem Description

输入一串字符,统计这串字符里的字母个数,数字个数,空格字数以及其他字符(最多不超过100个字符)

Input

多组测试数据,每行一组

Output

每组输出一行,分别是字母个数,数字个数,空格字数以及其他字符个数

Sample Input

I am a student in class 1.
I think I can!

Sample Output

18 1 6 1
10 0 3 1

HINT

char str[100];//定义字符型数组

while(gets(str)!=NULL)//多组数据

{

//输入代码

for(i=0;str[i]!=‘\0‘;i++)//gets函数自动在str后面添加‘\0‘作为结束标志

{

//输入代码

}

//字符常量的表示,

‘a‘表示字符a;

‘0‘表示字符0;

//字符的赋值

str[i]=‘a‘;//表示将字符a赋值给str[i]

str[i]=‘0‘;//表示将字符0赋值给str[i]

}

我的代码:

 1 #include<stdio.h>
 2 int main()
 3 {
 4     char ch[100];
 5     while(gets(ch)!=NULL)
 6
 7     {
 8         int char_num=0,kongge_num=0,int_num=0,other_num=0,i;
 9         for(i=0;ch[i]!=‘\0‘;i++)
10
11         {
12             if(ch[i]>=‘A‘ && ch[i]<=‘Z‘ || ch[i]<=‘z‘ && ch[i]>=‘a‘)
13             {
14                 char_num++;
15             }
16             else if(ch[i]==‘ ‘)
17             {
18                 kongge_num++;
19             }
20             else if(ch[i]>=‘0‘&&ch[i]<=‘9‘)
21             {
22                 int_num++;
23             }
24             else
25             {
26                 other_num++;
27             }
28         }
29     printf("%d %d %d %d\n",char_num,int_num,kongge_num,other_num);
30     }
31     return 0;
32 } 

其他代码:

 1 #include<stdio.h>
 2 #include<string.h>
 3 int main()
 4 {
 5     char str[100];//定义字符型数组
 6     int a=0, b=0, c=0, d=0;//字母,数字,空格,和其它
 7     while (gets(str) != NULL){
 8         int length = strlen(str);
 9         for (int i = 0; i < length; i++){
10             if (str[i] >= ‘A‘&&str[i] <= ‘Z‘||str[i] >= ‘a‘&&str[i] <= ‘z‘){
11                 a++;
12             }
13             else if (str[i] == ‘ ‘){
14                 c++;
15             }
16             else if (str[i] >= ‘0‘&&str[i] <= ‘9‘){
17                 b++;
18             }
19             else{
20                 d++;
21             }
22         }
23         printf("%d %d %d %d\n", a, b, c, d);
24         a=0; b=0; c=0; d=0;
25     }
26     return 0;
27 }
 1 #include <iostream>
 2 #include<cctype>
 3 using namespace std;
 4
 5  char s[100];
 6 int main()
 7 {
 8     int alpha,num,space,other;
 9    while(gets(s))
10    {
11        alpha=0,num=0,space=0,other=0;
12        for(int i=0;s[i]!=‘\0‘;++i)
13        {
14            if(isalpha(s[i]))      ++alpha;
15            else if(isdigit(s[i])) ++num;
16            else if(s[i]==32)      ++space;
17            else                   ++other;
18        }
19        cout<<alpha<<" "<<num<<" "<<space<<" "<<other<<endl;
20    }
21     return 0;
22 }
时间: 2024-10-13 06:24:36

武汉科技大学ACM :1003: 零起点学算法67——统计字母数字等个数的相关文章

1165: 零起点学算法72——首字母变大写

1165: 零起点学算法72--首字母变大写 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 705  Accepted: 439[Submit][Status][Web Board] Description 输入一个英文句子,将每个单词的第一个字母改成大写字母. Input 输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行. Output 请输出按照要求改写后的英文句

1166: 零起点学算法73——统计元音

1166: 零起点学算法73--统计元音 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 1082  Accepted: 402[Submit][Status][Web Board] Description 统计每个元音字母在字符串中出现的次数. Input 输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串,只由小写字母组成. Output 对于每个测试实例输出5行

1146: 零起点学算法53——数组中插入一个数

1146: 零起点学算法53--数组中插入一个数 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 1749  Accepted: 613[Submit][Status][Web Board] Description 给定有序数组(从小到大),再给你一个数,要求插入该数到数组中并保持顺序 Input 多组测试,每组第一行输入一个整数n,然后是n个有序的整数 第二行输入1个整数m和1个整数K Outpu

武汉科技大学ACM :1003: 零起点学算法14——三位数反转

Problem Description 水题 Input 输入1个3位数(题目包含多组测试数据) Output 分离该3位数的百位.十位和个位,反转后输出(每组测试数据一行) Sample Input 250 Sample Output 052 HINT 分离出各位数字可以用取余和除数 注意在C语言里,2个整数相乘除结果还是整数 比如8/3在C语言里结果是2 取余采用符号% 比如8%3的结果应该是2即8除以3后的余数 1 #include <stdio.h> 2 3 int main() 4

武汉科技大学ACM :1003: 零起点学算法78——牛牛

Problem Description 牛牛是一种纸牌游戏,总共5张牌,规则如下: 如果找不到3张牌的点数之和是10的倍数,则为没牛: 如果其中3张牌的点数之和是10的倍数,则为有牛,剩下两张牌的点数和对10取余数,余数是几,就是牛几,特别的当余数是0的时候是牛牛: 例如: 1 2 3 4 5, 1 + 4 + 5 = 0 (mod 10),2 + 3 = 5(mod 10), 为牛5. Input 第一行输入一个整数T(T <= 100),表示有几组数据.每组数据占一行,5 个数, 每个数的范

Problem F: 零起点学算法85——数组中插入一个数

#include<stdio.h> int main() { int n,a[50],b[50]; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) { scanf("%d",&a[i]); } int m,k,j=0; scanf("%d%d",&m,&k); for(int i=0;i<n;i++) { if(a[i]<m) { b

Problem K: 零起点学算法107——统计元音

#include<stdio.h> int main() { int n; char a[100]; while(scanf("%d%*c",&n)!=EOF) { while(n--) { int num1=0,num2=0,num3=0,num4=0,num5=0; gets(a); for(int i=0;a[i]!='\0';i++) { switch(a[i]) //在这用switch语句会比较方便 { case 'a': num1++;break; ca

1122: 零起点学算法29——等级分制度

1122: 零起点学算法29--等级分制度 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 2657  Accepted: 1379[Submit][Status][Web Board] Description ACM集训队每年都要招新队员.他们很多从大一开始就练了.当然一开始都是从hello world练起的,后来很多人成了牛人. 你想参加吗?如果你感兴趣,赶快加入.可以写Email武科大ACM俱

1169: 零起点学算法76——绝对公正的裁判

1169: 零起点学算法76--绝对公正的裁判 Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lldSubmitted: 510  Accepted: 336[Submit][Status][Web Board] Description 大家知道我们学校的OnlineJudge吗?,你知道他会告诉你什么呢? Compiling : 您提交的代码正在被编译.Running : 您的程序正在OJ上运行.Judging : OJ