Day1
题目描述
写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)
数据范围: 1≤n≤1000 1≤n≤1000
输入描述:
第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)
输出描述:
输出输入字符串中含有该字符的个数。(不区分大小写字母)
示例1
输入:
输入:ABCabc
字符:a
输出:
2
说明:
a出现的次数为2
思路
首先把从键盘输入的字符都放进一个数组当中,然后把他们都变成大写或者小写,本题变成小写他们的值相差32,把每个遍历出来并统计与我们输入字符相等的次数即可。
具体实现
#include<stdio.h>
#include<string.h>
int TOlower(char a[50], char c);
int main(){
char a[50];
char c;
printf("请输入判断的字符串\n");
gets(a);
printf("输入判断的字符\n");
scanf("%c",&c);
int count =TOlower(a,c);
printf("出现的次数为%d\n",count);
}
int TOlower(char a[50], char c) {
int count;
int n= strlen(a);
if(c>='A'&&c<='Z')
{
c=c+32;
}
for(int i=0;i<n;i++) {
if (a[i] >= 'A' && a[i] <= 'Z')//转换成小写
{
a[i] = a[i] + 32;
}
if(c==a[i])
{
count++;
}
}
return count;
}
时间复杂度
o(n)
小结
慢慢回忆起知识点,建立自己的算法思想,希望每一步都能扎实,谢谢各位群友。