题解 | 计算某字符出现次数

计算某字符出现次数

https://www.nowcoder.com/practice/a35ce98431874e3a820dbe4b2d0508b1

#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* readline() {
    int buffer_size = 128;
    char ch;
    char* buffer = (char*)malloc(buffer_size * sizeof(char));
    size_t inputlen = 0;
    memset(buffer, 0, buffer_size);

    while ((ch = getchar()) != '\n' && ch != EOF) {
        inputlen++;
        if (inputlen >= buffer_size) {
            buffer_size *= 2;
            buffer = (char*)realloc(buffer, buffer_size * sizeof(char));
        }
        buffer[inputlen - 1] = ch ;
    }
    buffer[inputlen] = '\0';
  
    return buffer;

}

bool is_alph(char dst) {
    return (dst >= 'a' && dst <= 'z') || (dst >= 'A' && dst <= 'Z');
}

bool is_big_alph(char dst) {
    return (dst >= 'A' && dst <= 'Z');
}

int main() {

    char dst = ' ';
    int count = 0;

    char* str = readline();
    scanf("%c", &dst);

    bool isalph = is_alph(dst);
    bool isbigalph = false;
    if (isalph) {
        if (is_big_alph(dst)) {
            isbigalph = true;
        }
    }

    for (int i = 0; i < strlen(str); i++) {

        if (!isalph) {
            if (str[i] == dst) {
                count++;
            }
            continue;
        } else {
            if (isbigalph) {
                if ((str[i] == dst) || (str[i] == (dst + ('a' - 'A'))))  {
                    count++;
                }
            } else {
                if ((str[i] == dst) || (str[i] == (dst - ('a' - 'A')))) {
                    count++;
                }
            }
        }
    }

    printf("%d", count);

    return 0;
}

全部评论

相关推荐

09-29 16:59
已编辑
门头沟学院 Java
牛客96609213...:疯狂背刺,之前还明确设置截止日期,还有笔试,现在一帮人卡在复筛,他反而一边开启扩招,还给扩招的免笔试,真服了,你好歹先把复筛中的给处理了再说
投递大疆等公司10个岗位
点赞 评论 收藏
分享
10-10 16:30
济宁学院 Java
不想做程序员:面试官:蓝桥杯三等奖?你多去两次厕所都能拿二等吧
点赞 评论 收藏
分享
10-29 16:42
门头沟学院 Java
1.今天什么国标的公司打电话约面试,还得准备ppt,好麻烦,网上查薪资一般,打算拒了,不面了2.字节又复活了,什么安全开发,也不知道怎么样,面一面试试吧,还是挺想去字节的,但好难,随缘吧所以今天没面试
嵌入式的小白:面试前可以好好准备下 1.看看你投递的岗位的岗位描述,分析下是哪个业务线,同使要罗列他们描述中提到的技术点 2.根据1中的两点准备 3.岗位描述中应该还有语言要求,这个刷刷八股,要是对自己语言能力很有把握,那就不用看这点了 4.找下你简历中项目部分,看有没有和岗位描述中技术点重合的,这种在面试提到项目时,是高概率问题 好好准备,祝你面试顺利
我的求职进度条
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务