题目描述:
写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字母,然后输出输入字符串中该字母的出现次数。不区分大小写,字符串长度小于500。
输入描述:
第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字母。
输出描述:
输出输入字符串中含有该字符的个数。
示例:
输入:
ABCabc
A
输出:
2
解题思路:
输入一个字符串和字母,分析该字母在字符串中出现的次数,最简单的方法就是遍历一遍,在ASCII表里,大小写之间差了32,判断的时候除了判断字符本身,也判断该字符加减32的情况,就可以统计出出现次数,但这仅仅是基于字符串中只有字母数字和空格。
测试代码:
#include <stdio.h>
#include <string.h>
int main()
{
char s[500]; //定义字符串长度
fgets (s, 500, stdin); //输入获取字符串
char ch;
scanf ("%c", &ch);
int number = 0;
int slength = strlen (s);
for (int i = 0; i < slength - 1; i++) //为啥减1,请看一下fgets()函数
{
//遍历完整个字符串找出相同的字母
if ( s[i] == ch || s[i] == ch + 32 || s[i] == ch - 32)
number ++;
}
printf ("%d\n", number);
return 0;
}
最后声明一下,本文章是在作者:翟天保Steven 这位前辈的基础上去改写出来的C语言版本, 如有侵权请联系我删除或者修改 下面是我本人借鉴出处的链接。
原文链接: