题目描述
写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
输入描述:
第一行输入一个有字母和数字以及空格组成的字符串,第二行输入一个字符。
输出描述:
输出输入字符串中含有该字符的个数。
示例1
输入
ABCDEF A
输出
1
分析思路
1.输入处理
- gets(sp);//处理字符串输入。
- scanf("%c",&ch);//处理字符输入
2.匹配字符ch的大小写判断
题目要求不区分大小写,所以需要判断匹配字符的大小写。方便后续匹配3. 遍历字符串,并与ch比较
4.输出
5.c语言实现
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
//1. 输入处理
char* head,*sp = NULL;
char ch;
sp = (char*)malloc(sizeof(char));
head = sp;
gets(sp);
scanf("%c",&ch);
// 2. 确定是大写、小写或数字
enum CharType{other,Upper,Lower};
int type = -1;
if (ch >= 'a' && ch <= 'z')
{
type = Upper;
}
else if(ch >= 'A' && ch <= 'Z')
{
type = Lower;
}
else
{
type = other;
}
int count = 0;
// 2. 匹配字符
while(*sp != '\0')
{
if(type == Upper)
{
if((*sp) == ch || (*sp) == (ch -32))
{
count++;
}
}
else if(type == Lower)
{
if (*sp == ch || *sp == (ch+32))
{
count++;
}
}
else
{
if (*sp == ch)
{
count++;
}
}
sp++;
}
printf("%d\n",count);
free(head);
return 0;
}

京公网安备 11010502036488号