Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* 세번째 버전::
- 첫번째 버전과 두번째 버전의 코드는 a~z까지 돌때마다 한번씩 문자열을
- 모두 순회하므로 상당히 비효율 적이라는 문제가 있다. 여기 세번째
- 버전은 단 한번 문자열 순회를 통해 a부터 z까지의 빈도를 모두
- 구한다. 구조가 어려운 코드는 아니므로 의미적으로 필요한 부분에만
- 설명을 첨부한다. */
- #include <stdio.h>
- // 알파벳의 개수
- #define num_of_alpha 'z'-'a'+1
- int main(void) {
- char String[100];
- scanf("%s", String);
- int Frequency[num_of_alpha] = {0};
- for (int i = 0; String[i] != '\0'; i++)
- Frequency[String[i]-'a']++;
- // String[i]-'a'의 역할:
- // a는 0번째로, b는 1번째로, c는 2번째로, ... 와 같이 현재
- // 가리키고 있는 문자를 Frequency 배열에 매칭시킨다.
- for (int i = 0; i < num_of_alpha; i++)
- if (Frequency[i] != 0) printf("%c : %d\n", i+'a', Frequency[i]);
- // i+'a'는 i가 0일때 a, 1일때 b, ... 이런식으로 매칭되어 출력 결과는
- // a: 몇개, b: 몇개, ... 이런식으로 출력된다.
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement