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

计算某字符出现次数

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

方法一

一一匹配

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


int main(){
    char str[1000];
    char x;
    gets(str);
    x=getchar();
    int k=0;
    //printf("str: %s\n", str);
    int l=strlen(str);
    if(x>='a' && x<='z'){
        for(int i=0;i<l;i++){
            if(str[i]==x||(str[i]+32)==x)
                k++;
        }
    }
    else if(x>='A' && x<='Z'){
        for(int i=0;i<l;i++){
            if(str[i]==x||(str[i]-32)==x)
                k++;
        }
    }
    else{
        for(int i=0;i<l;i++){
            if(str[i]==x)
                k++;
        }
    }
    /*for(int i=0;i<l;i++){
        if(str[i]==x||(str[i]-32)==x||(str[i]+32)==x)
            k++;
    }*/
    printf("%d",k);
}

要注意字母的大小写,不同情况分类讨论

小写字母比大写字母大32。

方法二

使用tolower函数将字母都化为小写之后再匹配

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

int main(){
    char str[1000];
    char x;
    gets(str);
    x=getchar();
    int k=0;
    //printf("str: %s\n", str);
    int l=strlen(str);
    for(int i=0;i<l;i++){
        if(tolower(str[i])==tolower(x))
            k++;
        }  
    printf("%d",k);
}

华为机考题库 文章被收录于专栏

华为机考题库

全部评论

相关推荐

八极星:有什么不能问的,(/_\),这又不是多珍贵的机会,你有什么可失去的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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