ASCII 코드. 소문자 a는 98이다.
사실 그냥 문자로 경우를 나눠도 되지만 좀더 쉽게 해보려고..

10808 알파벳 개수
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
char arr[100];
int alphabet[26];
scanf("%s", arr);
for (int i = 0; i < 26; i++) {
alphabet[i] = 0;
}
int i = 0;
while (arr[i] != NULL) {
int flag;
flag = (int)arr[i] % 97; //a의 아스키 코드는 97
alphabet[flag] = alphabet[flag] + 1;
i++;
}
for (int k = 0; k < 26; k++) {
printf("%d ", alphabet[k]);
}
return 0;
}

실행은 잘 되고 정답이지만 오류가 발생.

flag값이 alphabet의 인덱스 0~25를 벗어날 수 있기 때문.
(실제 입력되는 값은 알파벳 소문자이므로 채점 시에는 괜찮았다.)

if문을 통해 alphabet에 주어지는 인덱스 값을 제한해 주면 오류가 사라지는 것을 확인할 수 있다.
