RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1189989
Accepted
A_Hatake
A_Hatake
Asked:2021-10-14 04:31:00 +0000 UTC2021-10-14 04:31:00 +0000 UTC 2021-10-14 04:31:00 +0000 UTC

计数不同大小写的数字和字母

  • 772

需要实现一个函数来确定一个字符串中有多少个大写字母、小写字母和数字。该函数必须具有签名: int calcLetters ( char * iStr , int * oLowerCnt , int * oUpperCnt , int * oDigitsCnt ); 这里 iStr 是一个指向以空字符结尾的字符串开头的指针。oLowerCnt、oUpperCnt 和 oDigitsCnt 参数被输出:调用者将一个指向某些局部变量的指针传递给它们以在其中得到相应的结果。函数返回iStr字符串的长度,*oLowerCnt变量必须填写小写字母的个数,*oUpperCnt填写大写字母的个数,*oDigitsCnt填写数字个数。 作为一项测试任务,您需要读取文件的所有行并打印每一行的统计信息。

文件行可以包含任何可打印的 ASCII 字符,包括空格(包括代码 32 到 126)。因此,推荐使用gets来读取字符串。任意字符串的长度不超过 100,字符串可以为空。请注意,文件的最后一行也以换行符结尾。

对于输入文件的每一行,以与示例输出完全相同的格式输出统计信息:

Line 1 has 30 chars: 24 are letters (23 lower, 1 upper), 0 are digits.
Line 2 has 32 chars: 22 are letters (22 lower, 0 upper), 0 are digits.
Line 3 has 26 chars: 18 are letters (17 lower, 1 upper), 0 are digits.
Line 4 has 12 chars: 7 are letters (7 lower, 0 upper), 0 are digits.
Line 5 has 31 chars: 21 are letters (20 lower, 1 upper), 0 are digits.
Line 6 has 13 chars: 6 are letters (6 lower, 0 upper), 1 are digits.
Line 7 has 30 chars: 19 are letters (19 lower, 0 upper), 1 are digits.
Line 8 has 1 chars: 0 are letters (0 lower, 0 upper), 0 are digits.

**我已经挠头一天了,它只是发生了:**

#include <stdio.h>
main() {
    char str[255];
    int i,let_b, let_s, digit;
    gets(str);
    let_s = 0;
    let_b = 0;
    digit = 0;
    for (i=0; str[i]!='\0'; i++)
        if (str[i] >= 'a' && str[i] <= 'z') let_s += 1;
        else if (str[i] >= 'A' && str[i] <= 'Z') let_b += 1;
        else if (str[i]>='0'&&str[i]<='9') digit++;
        printf("%d %d %d", let_s, let_b, digit);
}```

как сюда впихнуть войд? и что делать, если строк несколько? буду благодарна за ваши ответы
c
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Sergey
    2021-10-14T19:17:02Z2021-10-14T19:17:02Z

    函数返回字符串iStr的长度,小写字母的个数必须写到*oLowerCnt变量,大写字母的个数必须写到*oUpperCnt,位数必须写到*oDigitsCnt

    大概是这样的:

    #include <ctype.h>
    
    int calcLetters (char *iStr, int *oLowerCnt, int *oUpperCnt, int *oDigitsCnt) {
    
        char c:
        int j:
        int len = strlen(iStr);
    
        *oLowerCnt = 0;
        *oUpperCnt = 0;
        *oDigitsCnt = 0;
    
        for (j=0; j<len; j++) {
            c = iStrr[j];
            if (islower(c)) oLowerCnt++;
            if (isupper(c)) oUpperCnt++;
            if (isdigit(c)) oDigitsCnt++;
        }
        return len;
    };
    

    该代码是“临时”编写的,因此可能会出现拼写错误-检查!

    如果有多条线路怎么办?

    循环做!!!:-) 像这样的东西:

    #include <stdio.h>
    
    int main(int argc, char *argv[]) {
    
    char buf[1024];
    int oLowerCnt, oUpperCnt, oDigitsCnt;
    . . . 
    
        while (fgets(buf, 1024, stdin) {
           len = calcLetters (buf, &oLowerCnt, &oUpperCnt, &oDigitsCnt);
           printf("%d %d %d %d\n", len, oLowerCnt, oUpperCnt, oDigitsCnt);
        }
    
    . . .
    }
    
    • 1

相关问题

  • free 出于某种原因不会从内存中删除数组

  • 请帮助代码

  • 为什么 masm 对字符串或文本文字太长发誓,为什么在结构中设置 db 或 dw?

  • 如何将数字拆分为位并将其写入 C 中的数组?

  • 如何以给定的角度移动物体?

  • 解决“子集和问题”的时效算法

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5