본문 바로가기

C

[C언어] 실습: 영어 단어를 입력받은 후, 알파벳 개수 출력하기

반응형

영어 단어를 입력받은 후, 알파벳 개수 출력하기


입력형식 출력형식
문자열 입력(대문자): AAEEEBBCFAA

 A: ****
 B: **
 C: *
 D:
 E: ***
 F: *
 ...

 

#include<stdio.h>

int main(){

   char str[50];
   int alpha[26] = {0};   // alpha[] 배열의 값들을 0으로 초기화한다.
   int i = 0;

   printf("문자열 입력(대문자) : ");
   scanf("%s", str);

   while(str[i] != 0){         // str[i]가 0(null)이 아닐 때까지 반복한다. 즉, 입력된 문자 수 만큼 반복한다.(문자열 배열에는 마지막에 null 문자가 존재한다.)
      alpha[str[i] - 65]++;    // alpah[]는 알바펫을 순서대로 나열하여 알파벳의 개수를 구하기 위한 배열이다. (alpha[0] = 'A', alpha[1] = 'B' ... alphp[25] = 'Z')
                               // 만약 str[1]=C라면, str[1]==C==67이다. 이때 alpha[str[1]-65]는 alpha[2]가 되고, 즉 C를 나타내게 된다.
                               // str[] 배열에 저장된 각각의 알파벳을 'str[i] - 65'로 알 수 있다.
      i++;
   }

   for(int j = 0; j < 26; j++){
      printf("%c : ", j + 65);
      for(int k = 0; k < alpha[j]; k++){
         printf("*");
      }
      printf("\n");
   }

   return 0;
}

 

반응형