题目
从标准输入读入一个字符串和一个目标字符 ch,统计并输出目标字符在字符串中出现的次数。
输入格式:第一行输入一个不含空格的字符串;第二行输入待统计的目标字符 ch。
输出格式:输出一个整数,表示该字符在字符串中出现的频次,末尾换行。
数据范围与约定:字符串长度不超过 500。区分大小写。
思路与算法
1. 字符串遍历
以字符串结束标志 '\0' 为循环终止条件,通过 for (int i = 0; s[i] != '\0'; i++) 顺序遍历。
2. 字符匹配累加
当 s[i] == ch 时计数器自增 1,时间复杂度为 O(n)。
完整程序
#include <stdio.h>
int main(void)
{
char s[1000], c;
// %999s 防止缓冲区溢出
if (scanf("%999s %c", s, &c) != 2) {
return 1;
}
int cnt = 0;
// 遍历字符串直到遇 '\0' 结束符
for (int i = 0; s[i]; i++) {
if (s[i] == c) {
cnt++;
}
}
printf("%d\n", cnt);
return 0;
}运行示例
输入:
banana a输出:
3