저는 C언어를 독학하고 있는 코린이입니다 문제 풀이 사이트에서 문제들을 푸는데 이런 문제가 있습니다

"

세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.

예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.

"

그래서 아래와 같이 코딩했는데 계속 워닝이 뜨는군요...


#include <stdio.h>

#include <string.h>

#include <stdlib.h>


int main() {

    int num1, num2, num3, i, count;

    char sum[9];

    char i_char;

    count = 0;

    scanf(" %d %d %d", &num1, &num2, &num3); // 변수 3개를 받아서 곱한다

    sprintf(sum, "%d", num1*num2*num3);

    for(i=0; i<10; i++) { // 0~9까지 sum에 얼마나 들어가 있는지 새어서 count에 저장

        sprintf(i_char, "%d", i); // 정수 i를 i_char로 변환

        char *ptr = strchr(sum, i_char);

        while(ptr != NULL) {

            ptr = strchr(ptr + 1, i_char);

            count++;

        }

        i = atoi(i_char); // i_char을 다시 정수i로 변환

        printf("count: %d\n", count);

        count = 0;

    }

}


======

아래는 워닝 내용입니다

====

03_숫자의 개수.c: In function ‘main’:

03_숫자의 개수.c:13:17: warning: passing argument 1 of ‘sprintf’ makes pointer from integer without a cast [-Wint-conversion]

   13 |         sprintf(i_char, "%d", i); // 정수 i를 i_char로 변환

      |                 ^~~~~~

      |                 |

      |                 char

In file included from 03_숫자의 개수.c:1:

/usr/include/stdio.h:334:38: note: expected ‘char * restrict’ but argument is of type ‘char’

  334 | extern int sprintf (char *__restrict __s,

      |                     ~~~~~~~~~~~~~~~~~^~~

03_숫자의 개수.c:19:18: warning: passing argument 1 of ‘atoi’ makes pointer from integer without a cast [-Wint-conversion]

   19 |         i = atoi(i_char); // i_char을 다시 정수i로 변환

      |                  ^~~~~~

      |                  |

      |                  char

In file included from 03_숫자의 개수.c:3:

/usr/include/stdlib.h:104:30: note: expected ‘const char *’ but argument is of type ‘char’

  104 | extern int atoi (const char *__nptr)

         |                  ~~~~~~~~~~~~^~~~~~

03_숫자의 개수.c:13:9: warning: ‘i_char’ may be used uninitialized in this function [-Wmaybe-uninitialized]

   13 |         sprintf(i_char, "%d", i); // 정수 i를 i_char로 변환

        |         ^~~~~~~~~~~~~~~~~~~~~~~~

어떻게 고쳐야 할까요?