Menu
Coddy logo textTech

대문자로 변환하기

Coddy C 여정의 Logic & Flow 섹션에 포함된 레슨 — 63개 중 23번째.

challenge icon

챌린지

쉬움

이전 레슨의 텍스트 유틸리티 프로그램을 확장하여 대문자 변환 기능을 추가하세요. 프로그램은 다음을 수행해야 합니다:

  1. 사용자에게 Enter a sentence: (끝에 줄 바꿈 없음)를 출력하여 짧은 문장을 입력하도록 요청합니다.
  2. 입력을 저장하기 위해 200개의 요소를 가진 sentence라는 이름의 문자 배열을 선언합니다.
  3. scanf%s 형식 지정자를 사용하여 사용자로부터 단일 단어를 읽습니다.
  4. 저장된 단어를 You entered: [word] 형식으로 출력합니다.
  5. strlen()을 사용하여 단어의 총 문자 수를 계산합니다.
  6. 문자 수를 Character count: [count] 형식으로 출력합니다.
  7. strlen()을 사용한 길이를 Length: [length] 형식으로 출력합니다.
  8. 루프를 사용하여 단어의 각 문자를 반복하며 모음의 개수를 셉니다.
  9. 각 문자에 대해 소문자와 대문자 모두에서 모음(a, e, i, o, u)인지 확인합니다.
  10. 발견된 모음의 개수를 유지합니다.
  11. 모음 개수를 Vowel count: [count] 형식으로 출력합니다.
  12. Uppercase: 를 출력한 다음, 루프를 사용하여 toupper() 함수로 단어의 각 문자를 대문자로 변환하고 출력합니다.

strlen() 함수를 사용하기 위해 <string.h> 헤더를, toupper() 함수를 사용하기 위해 <ctype.h> 헤더를 포함하는 것을 잊지 마세요.

toupper()에 관하여:
<ctype.h>toupper() 함수는 단일 문자를 해당하는 대문자로 변환합니다. 문자가 이미 대문자이거나 문자가 아닌 경우 변경되지 않은 상태로 반환됩니다.
예: toupper('a')'A'를 반환하고, toupper('Z')'Z'를 반환합니다.
루프 내에서 한 번에 한 문자씩 변환하는 데 사용할 수 있습니다: printf("%c", toupper(sentence[i]));

중요: 프롬프트 Enter a sentence: 뒤에는 줄 바꿈이 오면 안 됩니다. \n 없이 printf("Enter a sentence: ");를 사용하세요.

출력은 다음과 같은 형식으로 결과를 표시해야 합니다:

Enter a sentence: You entered: [word]
Character count: [count]
Length: [length]
Vowel count: [count]
Uppercase: [WORD]

예를 들어, 입력이 다음과 같다면:

Programming

출력은 다음과 같아야 합니다:

Enter a sentence: You entered: Programming
Character count: 11
Length: 11
Vowel count: 3
Uppercase: PROGRAMMING

이 챌린지는 <ctype.h> 라이브러리의 toupper() 함수를 사용하여 대문자 변환 기능을 추가함으로써 이전 레슨을 기반으로 합니다. 문자열의 각 문자를 반복하고 대문자로 변환한 다음 변환된 결과를 출력하기 위해 루프를 사용해야 합니다.

직접 해보기

#include <stdio.h>
#include <string.h>

int main() {
    printf("Enter a sentence: \n");
    
    char sentence[200];
    scanf("%s", sentence);
    
    printf("You entered: %s\n", sentence);
    
    int char_count = strlen(sentence);
    printf("Character count: %d\n", char_count);
    
    int length = strlen(sentence);
    printf("Length: %d\n", length);
    
    int vowel_count = 0;
    for (int i = 0; i < strlen(sentence); i++) {
        char c = sentence[i];
        if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ||
            c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
            vowel_count++;
        }
    }
    
    printf("Vowel count: %d\n", vowel_count);
    
    return 0;
}

Logic & Flow의 모든 레슨