指针填空

指针填空

时间: 1ms        内存:128M

描述:

用指针统计字符串中英文字母、数字的个数
 
输入一行字符,用指针统计字符串中英文字母和数字(字符串中只有英文字符和数字)主要代码已经给出,请补充缺少的部分。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define Maxsize 10000
int main()
{
    char *p;
    int sum1=0,sum2=0;
    p=(char *)malloc(sizeof(char)*Maxsize);
    scanf("%s",p);
    while(*p)
    {
          /*******************************
                 请在该部分补充缺少的代码
           ********************************/
    }
    printf("%d %d\n",sum1,sum2);
    return 0;
}

输入:

一行字符串

输出:

统计值

示例输入:

abcdefghi123456789

示例输出:

9 9

提示:

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


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define Maxsize 10000
int main()
{
    char *p;
    int sum1=0,sum2=0;
    p=(char *)malloc(sizeof(char)*Maxsize);
    scanf("%s",p);
    while(*p)
    {if(*p<='z'&&*p>='a'||*p>='A'&&*p<='Z')
            sum1++;
        else if(*p>='0'&&*p<='9')
            sum2++;
        p++;
    }
    printf("%d %d\n",sum1,sum2);
    return 0;
}

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


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define Maxsize 10000
int main()
{
    char *p;
    int sum1=0,sum2=0;
    p=(char *)malloc(sizeof(char)*Maxsize);
    scanf("%s",p);
    while(*p)
    {if(*p<='z'&&*p>='a'||*p>='A'&&*p<='Z')
            sum1++;
        else if(*p>='0'&&*p<='9')
            sum2++;
        p++;
    }
    printf("%d %d\n",sum1,sum2);
    return 0;
}

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

点赞

发表评论

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