C语言联系第二天

计算字符个数

https://www.nowcoder.com/practice/a35ce98431874e3a820dbe4b2d0508b1?tpId=37&tqId=21225&tPage=1&rp=&ru=%2Fta%2Fhuawei&qru=%2Fta%2Fhuawei%2Fquestion-ranking

题目描述
写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。

输入描述:
第一行输入一个有字母和数字以及空格组成的字符串,第二行输入一个字符。

输出描述:
输出输入字符串中含有该字符的个数。

示例1
输入
ABCDEF
A
输出
1

include <stdio.h>

include <string.h>

int main(void)
{
char word[5000] = { 0 };
char ch_ar;
char* str_p = word;
int count = 0;

fgets(word, sizeof(word), stdin);
ch_ar =    fgetc(stdin);

int str_len = strlen(word) - 1;

if (0 >= str_len)
{
    printf("%d", 0);
    return 0;
}

for (int i=0;i < str_len;i++)
{
    if ((ch_ar >= 'A') && (ch_ar <= 'Z'))
    {
        if ((ch_ar == *str_p) || ((ch_ar + 32) == *str_p))
        {
            count++;
        }
    }
    if ((ch_ar >= 'a') && (ch_ar <= 'z'))
    {
        if ((ch_ar == *str_p) || ((ch_ar - 32) == *str_p))
        {
            count++;
        }
    }
    else if (*str_p == ch_ar)
    {
        count++;
    }

    str_p++;
}

printf("%d", count);
return 0;

}

知识点:
1.C语言中获得输入字符的库函数:int fgetc(FILE *stream) ,这个函数输入为stdin,返回值为用户输入的单个无符号字符;
2.获取输入字符转的库函数:char *fgets(char *str, int n, FILE *stream),这个函数的第一个参数是目标地址,第二个函数是目标地址最大可以存储字符串的长度,第三个参数是stdin,即从用户输入的字符串;
3.ASCII码中,A-Z为65-90;a-z为:97-122,所以每个小写字母比它对应的大写字母大22.此题中由于不区分大小写,因此要考虑大小写的情况。

全部评论

相关推荐

02-18 17:30
腾讯_TEG_技术
多刷**&nbsp;背八股&nbsp;刷面经&nbsp;项目话术准备好&nbsp;不会差的!!!后台看到好多小伙伴们都出现其中一个环节的错误,,,可惜了抓紧机会吧&nbsp;有的是hc&nbsp;但缺的就是稍微用心的人
野猪不是猪🐗:多刷星星,背八股背话术,真的能过你们?对一个个没实习过的学生狂问场景题设计题和底层深挖,别以为我不知道一边说缺人还一边各种kpi面
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务