输入字符串以及输出
时间: 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;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。