输入字符串以及输出

输入字符串以及输出

时间: 1ms        内存:128M

描述:

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

输入:

一行字符串

输出:

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

示例输入:

!@#$%^QWERT    1234567

示例输出:

5 7 4 6 

提示:

参考答案(内存最优[0]):

#include<iostream>
using namespace std;
int* tongji(char str[],int *a)
{   char *p=str;
	int o=0,q=0,m=0,n=0,i;
   for(i=0;*(p+i)!='\0';i++)
   {  if(*(p+i)==' ')
		  m++;
	else   if(*(p+i)>='0'&&*(p+i)<='9')
		   n++;
	 else  if(((*(p+i)>='a')&&(*(p+i)<='z'))||((*(p+i)>='A')&&(*(p+i)<='Z')))
		   o++;
     else q++;	   
   
   }
    *a=o;
	*(a+1)=n;
	*(a+2)=m;
	*(a+3)=q;
return a;
}
int main()
{
    char str[100];
    int i,a[4]={0};
    cin.getline(str,99);
    tongji(str,a);
    for(i=0; i<4; i++)
        cout<<a[i]<<" ";
    cout<<endl;
    return 0;
}

参考答案(时间最优[0]):

#include <stdio.h>
char tongji(char str0[100],int b[4])
{
    int i;
    for(i=0; str0[i]!='\0'; i++)
    {
        if(str0[i]>=65&&str0[i]<=90||str0[i]>=97&&str0[i]<=122) b[0]++;
        else if(str0[i]>=48&&str0[i]<=57) b[1]++;
        else if(str0[i]==32) b[2]++;
        else b[3]++;
    }
}
int main()
{
    char str1[100];
    static int i,a[4];
    gets(str1);
    tongji(str1,a);
    for(i=0; i<4; i++)
        printf("%d ",a[i]);
    printf("\n");
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注