1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | #include <stdio.h> #include <string.h> int jamo(char c) { if ((c == 'a') || (c == 'e') || (c == 'i') || (c == 'o') || (c == 'u')) { return 1; } else { return 2; } } int main() { while (1) { int flag = 1; char arr[30] = { 0 }; scanf("%s", &arr); //탈출조건 if (!strcmp(arr, "end")) break; //모음 포함 int len = strlen(arr); for (int i = 0; i < len; i++) { if (jamo(arr[i]) == 1) { flag = 0; } } //자음모음 for (int i = 2; i < len; i++) { int one = jamo(arr[i - 2]); int two = jamo(arr[i - 1]); int three = jamo(arr[i]); if (one == two && two == three) { flag = 1; } } //연속문자 for (int i = 1; i < len; i++) { if ((arr[i] == arr[i - 1])&&(arr[i]!='e')&& (arr[i] != 'o')) { flag = 1; } } if (flag == 0) { printf("<%s> is acceptable.\n", arr); } else { printf("<%s> is not acceptable.\n", arr); } } } | cs |
char 을 이용한 string 을 처음으로 사용해봤다.
굳이 string 클래스를 쓰지 않아도, 충분히 여러가지 기능들을 할 수 있는 것 같다.
비교연산은 strcmp 를 사용해야한다는 점이 있지만,
printf 할땐 입력받을때와 같이 똑같은 방식으로 출력이 가능하다
'알고리즘 > 문자와 문자열' 카테고리의 다른 글
문자열 정리> 기본 기법들 모음 (0) | 2020.01.12 |
---|---|
9971 The Hardest Problem Ever (0) | 2020.01.07 |
10545 뚜기뚜기메뚜기 (0) | 2020.01.06 |
3077 임진왜란 (0) | 2020.01.06 |
4949 균형잡힌 세상 (0) | 2020.01.06 |