HJ2. 计算某字符出现次数
描述
输入描述
第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字符。
输出描述
输出输入字符串中含有该字符的个数。(不区分大小写字母)
示例1
输入:
ABCabc A
输出:
2
C 解法, 执行用时: 1ms, 内存消耗: 260KB, 提交时间: 2021-01-30
#include<stdio.h> #include<string.h> int main(void) { char* s[100] = {0};//s是一个字符指针数组,包含100个char类型的指针。同时还有指针数组的初始化。 char* p = s;//p是指向指针数组的指针 char input = {0};//定义一个字符变量,并初始化 int i = 0; int j = 0; gets(s);//这个是获取一行所有的字符,在遇到换行符后返回所有的字符。 scanf("%c", &input);//获取一个字符,注意scanf获取的停止标志是EOF///这里犯了错,字符应该是%c而不是%d,除了字符串都要& while (p[i] != '\0') { if (tolower(p[i]) == tolower(input))//tolower是将字母转换为小写字母的函数 { j++; } i++; } printf("%d", j); return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 280KB, 提交时间: 2021-04-17
#include <stdio.h> #include <string.h> #include <ctype.h> int main(void) { int cnt[128] = {0}; char ch; for( ; (ch=getchar())!=EOF; ){ if(ch == '\n'){ ch = tolower( getchar() ); printf("%d\n", cnt[ch]+cnt[ ch-32 ]); memset(cnt, 0, sizeof(cnt)); getchar(); continue; } cnt[ tolower(ch) ]++; } return 0; }