注册 登录
编程论坛 C语言论坛

小白再求助一道题,运行时间超时了,求优化。

月影湖 发布于 2019-12-07 13:10, 2057 次点击
题目:编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。只要结果,别输出什么提示信息。(字符串最多10000字符)
#include<stdio.h>
int c=0,d=0,s=0,o=0;
int f(char a[]);
int main()
{
    char a[10000];
    gets(a);
    f(a);
    return 0;
}
int f(char a[])
{
    int i;
    for(i=0;a[i]!='\0';i++)
    {
        if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))c++;
        else if(a[i]>='0'&&a[i]<='9') d++;

        else if(a[i]==' ')s++;
        else o++;
    }
     printf("%d %d %d %d",c,d,s,o);
    return 0;
}
5 回复
#2
rjsp2019-12-07 15:40
char a[10000]
按题目要求是
char a[10001]


gets早就被废弃了吧
#3
月影湖2019-12-07 16:20
回复 楼主 月影湖
老师没讲gets过时了,我也只学过scanf,getchar,gets,谢谢你!
#4
月影湖2019-12-07 16:24
回复 2楼
知道哪儿可以优化的话还望指出,谢谢
#5
Jason_2019-12-07 17:04
我学的是c++,但是C语言里没有string吗?用string会不会快一点?
#6
月影湖2019-12-07 18:29
回复 5楼 Jason_
谢谢,有string的,但还是不行
1