0
点赞
收藏
分享

微信扫一扫

计算某字符出现次数

8052cf60ff5c 2022-04-04 阅读 54
算法

描述

写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)

数据范围: 1 \le n \le 1000 \1≤n≤1000

输入描述:

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

输出描述:

输出输入字符串中含有该字符的个数。(不区分大小写字母)

示例1

输入:

ABCabc
A

输出:

2

代码:

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

int findnum(char *str,char cha,char ch)
{    int i = 0;
     int num = 0;
    while(str[i] != '\0') {
        if((str[i] == cha) || (str[i] == ch)) {
            num++;
        }
        i++;
    }
 return num;
}
int main()
{
    char str[1000];
    char cha;
    char ch;
    int num;
   scanf("%[^\n]",str);
    scanf(" %c",&cha);
    if(isupper(cha)) {
        ch = tolower(cha);
    }
    else {
        ch = toupper(cha);
    }
    printf("%d",findnum(str, cha,ch));
    
}

这道题也非常简单;需要留意的就是 统计字符出现个数的时候是不区分大小写的;这样就设计到大小写的转换;

读取到需要判断的字符后,我先对其进行了大小写的判断,如果是大写,将其对应的小写保存至ch;反之。在遍历字符串的时候,会同时跟字符本身以及相对应的大小写进行比较;

这道题需要注意的点就是 输入字符串后会有\n,我们在读取字符的时候需要处理一下;

读取一行带空格的字符串可以使用gets();也可以使用上述代码中的:scanf("%[^\n]",str);

意思是读取所有输入,直到遇到\n;这样也可以实现用scanf读取带空格的字符串

C语言库函数学习:
1、判断大小写函数

判断是否为大写字母 isupper()

判断是否为小写字母islower()

2、大小写字母转换函数

将小写转换为大写:toupper()

将大写转换为小写:tolower()

需要注意的是使用上面四个库函数的时候需要加上头文件#include<ctype.h>

举报

相关推荐

0 条评论