问题
描述
写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)
数据范围: 1≤n≤1000
输入描述
第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。
输出描述
输出输入字符串中含有该字符的个数。(不区分大小写字母)
示例1
输入:ABCcaa
a
输出:3
思路
只会暴力解…定义一个数组,获取输入的字符串,在定义一个变量获取寻找的那个字符,对数组从前往后遍历,定义一个整型数k,若发现相同的令k++。
代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int k=0;
char m;
char a[1000];
gets(a);
scanf("%c", &m);
int len = strlen(a);
int p = m;
if (p >= 65 && p <= 90)
p = p + 32;
for (int i = 0; i < len; i++)
{
int t = a[i];
if (a[i] >= 65 && a[i] <= 90)
t= a[i] + 32;
if (t == p)
k++;
}
printf("%d", k);
return 0;
}
小结
在运行过程中,遇到大小写转换的问题,解决办法是把输入的字符串中的大写在遍历过程中全部变成小写,同时对于输入的单个字符也变成小写,并将他们统一成int变量,再去比较。也遇到过数组长度定义过小的问题,正在学习定义不定长度的数组。