迪迦


私信TA

用户名:dotcpp0776032

访问量:1135

签 名:

等  级
排  名 6762
经  验 1381
参赛次数 0
文章发表 25
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

方法区别:

第一种:输出在自定义函数中

第二种:输出在主函数中

注意事项:

使用scanf函数输入时,不能用 "%s" ,因为输入空格后输出只会显示空格之前的内容,所以要用 "%[^\n]" ,表示除了回车键全部读入


参考代码:

第一种方法(输出在自定义函数中):

#include <stdio.h>
#include <string.h>

void str_count(char *s)
{
    int letter = 0, digit = 0, space = 0, other = 0;
    for (int i = 0; i < strlen(s); i++)
    {
        if (s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'A' && s[i] <= 'Z')
            letter++;
        else if (s[i] >= '0' && s[i] <= '9')
            digit++;
        else if (s[i] == ' ')
            space++;
        else
            other++;
    }
    printf("%d %d %d %d", letter, digit, space, other);
}

int main()
{
    char s[100];
    gets(s);
    str_count(s);
    return 0;
}


第二种方法(输出在主函数中):

#include <stdio.h>
#include <string.h>

void str_count(char *s, char *a)
{
    for (int i = 0; i < strlen(s); i++)
    {
        if (s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'A' && s[i] <= 'Z')
            a[0]++;
        else if (s[i] >= '0' && s[i] <= '9')
            a[1]++;
        else if (s[i] == ' ')
            a[2]++;
        else
            a[3]++;
    }
}

int main()
{
    char s[100], a[4];
    scanf("%[^\n]", &s); // 除了回车键全部读入
    // gets(s);
    str_count(s, a);
    for (int i = 0; i < sizeof(a); i++)
    {
        printf("%d", a[i]);
        if (i != sizeof(a) - 1)
        {
            printf(" ");
        }
    }
    return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »