如何用指针实现字符位置统计?

问题描述:

字符位置统计(使用指针)

【问题描述】

编写一个程序,输入一个字符串str(长度不超过30)和一个字符ch,通过指针查找、统计字符串str中字符ch出现的位置及次数(区分大小写)。画出流程图。

【输入形式】

输入一个字符串str,以及一个字符ch

【输出形式】

若ch在str中存在,输出位置,位置之间以空格分隔
若ch在str中不存在,输出NULL
输出后面无换行符

【样例输入1】

Shanghaijiaotongdaxue h

【样例输出1】

1 5 2

【样例输入2】

Helloworld @
【样例输出2】
NULL

问题解决的话,请点下采纳

#include <stdio.h>

int main()
{
    char arr[31];
    scanf("%s", &arr[0]);
    char l;
    int r[31];
    scanf(" %c", &l);
    int x = 0;
    for (int i = 0; arr[i]; i++)
        if (arr[i] == l) r[x++] = i;
    if (x == 0)
        printf("NULL");
    else
    {
        for (int i = 0; i < x; i++)
            printf("%d ", r[i]);
    }
    return 0;
}

Shanghaijiaotongdaxue h
应该输出
1 5
不知道2哪里来的。