计算字符个数

计算字符个数

http://www.nowcoder.com/questionTerminal/a35ce98431874e3a820dbe4b2d0508b1

c

#include <stdio.h>

int main(void)
{
    char str[1000] = {0}, ch = 0;
    fgets(str, sizeof(str), stdin);
    ch = getchar();//fgetc(stdin);

    int str_len = strlen(str) - 1;
    if (str_len == 0) {
        printf("0\n");
        return 0;
    }

    int count = 0, i = 0;
    if (ch >= 'A' && ch <= 'Z') {
        for (i = 0; i < str_len; i++) {
            if (str[i] == ch || str[i] == ch+32)
                count++;
        }
    } else if (ch >= 'a' && ch <= 'z') {
        for (i = 0; i < str_len; i++) {
            if (str[i] == ch || str[i] == ch-32)
                count++;
        }
    } else {
        for (i = 0; i < str_len; i++) {
            if (str[i] == ch)
                count++;
        }
    }

    printf("%d\n", count);
    return 0;
}
全部评论
为什么str_len要等于那个减1呢?
点赞 回复 分享
发布于 2020-03-11 17:03
试过了,str_len减不减一结果都一样。 而且我这里ch=0 不行,要写成char ch = getchar()才没有问题。
点赞 回复 分享
发布于 2020-03-21 11:23
整得有点复杂,貌似没有看清题目。题目说第二行输入一个字母,直接比较就行了。
点赞 回复 分享
发布于 2021-03-23 20:09
可以整在一个循环里: #include <stdio.h> int main(void) { char str[1024] = {'\0'}; fgets(str, sizeof(str), stdin); char ch = getchar(); int str_len = strlen(str) - 1; if (str_len == 0) { printf("0\n"); return 0; } int count = 0, i = 0; for (i = 0; i < str_len; i++) { if (ch >= 'A' && ch <= 'Z') { if (str[i] == ch || str[i] == ch+32) count++; } else if (ch >= 'a' && ch <= 'z') { if (str[i] == ch || str[i] == ch-32) count++; } else { if (str[i] == ch) count++; } } printf("%d\n", count); return 0; }</stdio.h>
点赞 回复 分享
发布于 2022-08-01 00:08

相关推荐

牛客771574427号:恭喜你,华杰
点赞 评论 收藏
分享
10 3 评论
分享
牛客网
牛客企业服务