42.4 연습문제: 4-gram 만들기
다음 소스 코드를 완성하여 입력된 문자열을 문자 단위로 4-gram을 출력하세요. 만약 3글자 이하의 단어가 입력되면 wrong을 출력하세요.
practice_4_gram_character.c
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int main() { char text[30]; int length; int n = 4; scanf("%s", text); length = strlen(text); if (①________________) { printf("wrong\n"); } else { for (int i = 0; ②_____________; i++) { for (int j = 0; ③___________; j++) printf("%c", text[i + j]); printf("\n"); } } return 0; }
실행 결과
overwhelming (입력) over verw erwh rwhe whel helm elmi lmin ming
정답
① length < n ② i < length - (n - 1) ③ j < n
해설
여기서는 N-gram의 N이 변수 n으로 선언되어 있고 4가 들어있으므로 n을 활용하여 조건식을 작성합니다.
3글자 이하가 입력되면 wrong을 출력하라고 했으므로 if 조건문에는 length < n을 넣어줍니다. 문자열을 반복할 때는 배열의 범위를 벗어나지 않도록 i < length - (n - 1)과 같이 작성합니다. 마지막으로 글자를 출력할 때도 n개만큼 출력할 수 있도록 j < n과 같이 작성하면 됩니다.