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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | /* 2015.08.26 - 2015.08.28 내용: 문제5. 대문자를 소문자로 바꾸는 프로그램을 작성하세요. 소문자를 대문자로 바꾸는 프로그램을 작성하세요. 문제5-1. 대문자를 소문자로 바꾸는 사용자 정의함수를 만들어서 출력하는 프로그램을 작성하세요. 소문자를 대문자로 바꾸는 사용자 정의함수를 만들어서 출력하는 프로그램을 작성하세요. 문제5-2. 입력받은 문자열에서 대문자->소문자 변환 함수, 소문자->대문자 변환 함수로 만들어서 프로그램을 출력하세요. */ #include <stdio.h> #include <string.h> // strleng(char* str)을 사용하기 위해 필요함. #include <ctype.h> // toupper(int c), tolower(int c)를 사용하기 위해 필요함. void prtupper(int upper) // 소문자를 대문자로 만들어 출력하는 사용자 정의함수 { printf("%c \n", toupper(upper)); // toupper(int c): 소문자를 대문자로 만드는 함수 } void prtlower(int lower) // 소문자를 대문자로 만들어 출력하는 사용자 정의함수 { printf("%c \n", tolower(lower)); // tolower(int c): 대문자를 소문자로 만드는 함수 } void scprlower() // 입력받은 대문자 문자열을 소문자 문자열로 만들어 출력하는 사용자 정의함수. { char str[100]; // 문자열을 입력받을 배열을 생성 unsigned int i = 0; // 관계 연산자에서 sing/unsinged mismatch warning을 없애기 위해 unsinged 사용. // warning C4018: '<' : signed/unsigned mismatch while (i < strlen(str)) // 문자열이 모두 대문자로 바뀌어 출력되기 전까지 계속 입력값을 받음 { printf("문자열을 입력해주세요. \n"); // scanf("%s", &str); gets(str); for (i = 0; i < strlen(str); i++) { if (isupper(str[i]) == 0 && str[i] != ' ') { printf("대문자만 입력가능합니다."); fflush(stdin); // 표준입력영역(standard input)의 버퍼를 모두 비어냄. break; // scanf로 입력받을 시 버퍼가 남아있어 입력을 받지 않는 것을 방지하기 위함. } else { str[i] = tolower(str[i]); if (i == strlen(str) - 1) printf("%s \n", str); } } } } void scprupper() // 입력받은 소문자 문자열을 대문자 문자열로 만들어 출력하는 사용자 정의함수. { char str[100]; unsigned int i = 0; while (i < strlen(str)) { printf("문자열을 입력해주세요. \n"); // scanf("%s", &str); gets(str); for (i = 0; i < strlen(str); i++) { if (islower(str[i]) == 0 && str[i] != ' ') { printf("소문자만 입력가능합니다."); fflush(stdin); break; } else { str[i] = toupper(str[i]); if (i == strlen(str) - 1) printf("%s \n", str); } } } } int main() { char upper = 'A'; char lower = 'a'; printf("대문자->소문자: %c -> %c \n", upper, tolower(upper)); printf("소문자->대문자: %c -> %c \n", lower, toupper(lower)); printf("===============================================\n"); prtupper(upper); prtlower(lower); printf("===============================================\n"); // scprupper(); scprlower(); return 0; } /* void scprupper() // 입력받은 소문자를 대문자로 만들어 출력하는 사용자 정의함수 { char alphabet; printf("문자를 입력해주세요. \n"); while (1) // 무한반복으로 변환하기 전까지 계속 값을 받음. { scanf("%c", &alphabet); if (islower(alphabet) != 0) { prtupper(alphabet); break; } else { printf("소문자를 입력해주세요 \n"); fflush(stdin); // 표준입력영역(standard input)의 버퍼를 모두 비어냄. // scanf로 입력받을 시 버퍼가 남아있어 입력을 받지 않는 것을 방지하기 위함. } } } */ | cs |
'미래(2015-2016) > 자습' 카테고리의 다른 글
연산자를 입력받아 계산하기 (0) | 2015.08.28 |
---|---|
알람 울리는 시간 맞추기 (알람시계) (0) | 2015.08.28 |
마름모 찍기 (0) | 2015.08.26 |
직구 금액 계산하기 (0) | 2015.08.26 |
임의의 수 중 최대값 찾기 (0) | 2015.08.25 |