1439 - C语言-字符统计2

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。

题目输入

一行字符串

题目输出

统计数据,4个数字,空格分开。

输入/输出样例

输入格式

!@#$%^QWERT    1234567

输出格式

5 7 4 6 

C语言解答

#include<stdio.h>
#include<string.h>
int main()
{
	char str[10000];
	int b,i,z,s,k,q;
	z=s=k=q=0;
	gets(str);
	b=strlen(str);
	for(i=0;i<b;i++)
	{
		if(str[i]>=65&&str[i]<=90||str[i]>=97&&str[i]<=122)z++;
		else
			if(str[i]>=48&&str[i]<=57)s++;
		else
			if(str[i]==32)k++;
		else
			q++;
	}
	printf("%d %d %d %d",z,s,k,q);
	return 0;
}

C++解答

#include "stdio.h"
#include "string.h"
int num(char str[])
{
  int i,sum=0;
  for(i=0;str[i]!='\0';i++)
    if(str[i]>='0'&&str[i]<='9')
		sum++;
	return sum;
}
int chart(char str[])
{
 int i,sum=0;
  for(i=0;str[i]!='\0';i++)
    if(str[i]>='A'&&str[i]<='Z'||(str[i]>='a'&&str[i]<='z'))
		sum++;
	return sum;
}
int kongge(char str[])
{
 int i,sum=0;
  for(i=0;str[i]!='\0';i++)
    if(str[i]==' ')
		sum++;
	return sum;
}
int qita(char str[])
{
	int len;
 len=strlen(str);
return len-kongge(str)-chart(str)-num(str);
}
int main(int argc, char* argv[])
{
	char str[100];
	while(gets(str))
	{
	 printf("%d %d %d %d \n",chart(str),num(str),kongge(str),qita(str));
	}
	return 0;
}

Java解答

import java.util.Scanner;
 
public class  Main {
    public static void main(String[] args) {
        Scanner cin= new Scanner(System.in);
        while (cin.hasNext()) {
            String  a = cin.nextLine();
            int letterCounter = 0;
            int digitCounter = 0;
            int spaceCounter = 0;
            int otherCounter = 0;
            char[] charArray = a.toCharArray();
            for (int i = 0; i < charArray.length; i++) {
                if (Character.isLetter(charArray[i])) {
                    letterCounter++;
                } else if (Character.isDigit(charArray[i])) {
                    digitCounter++;
                } else if (Character.isSpaceChar(charArray[i])) {
                    spaceCounter++;
                } else {
                    otherCounter++;
                }
            }
            System.out.println(letterCounter + " " + digitCounter + " " + spaceCounter + " " + otherCounter);
        }
    }
}