关于数组的一个入门题型

【问题描述】编程实现在一个字符串中查找指定的字符,并输出指定的字符在字符串中出现的次数及位置,如果该字符串中不包含指定的字符,请输出提示信息。

(1)定义字符数组str用来存放字符串,整数数组count用来存放指定的字符在字符串中出现的次数和位置(即对应的下标)。数组count[0]存放出现的次数,后面依次存放每个出现的位置。

(2)定义字符ch存放要查找的字符。

(3)给字符数组str输入一个字符串,给ch输入查找字符。(字符串中应可以输入空格)

(4)在字符数组中查找ch,如果查找到把相应的查找结果存放到数组count中。如果查找到,输出出现的次数和各个位置。如果查找不到,输出"No match!"。提示:设置标志变量flag用于判断是否查找到。

【输入形式】第一行输入字符串,第二行输入要查找的字符
【输出形式】如果查找到第一行输出出现次数,第二行输出各个位置,否则输出:No match!

【样例输入】

dfdfjkjjfdffd

d
【样例输出】

4

0 2 9 12

#include<stdio.h>
#include<string.h>
#define maxlen 150
int main()
{
    char str[maxlen],ch;
    int count[maxlen]= {0};
    gets(str);
    ch=getchar();
    int len=strlen(str),p=1;
    for(int i=0; i<len; i++)
        if(str[i]==ch)
        {
            count[0]++;
            count[p++]=i;
        }
    int flag=1;
    if(p==1)
        flag=0;
    if(flag==0)
    {
        printf("No match!");
        return 0;
    }
    printf("%d\n",count[0]);
    for(int i=1; i<p; i++)
        printf("%d ",count[i]);
    return 0;
}