소프트웨어/C

[2004년 기말 3번] 대소문자 변경 - 문자 속성

카켈 2007. 2. 11. 04:25



1. 목적
  - 문자열에 대한 계념을 잡는다.
  - 문자의 속성에대해 이해한다.

2. 문제 (점수 : 20 점)
  - 문자열을 입력 받아서 대문자는 소문자로 소문자는 대문자로 변환시키는 프로그램을 작성한다.
  - 문자열의 길이 또한 출력한다.
  - 출력화면

문자열을 입력하세요 : Hello ^^ Nice to meet YOU !!
입력된 문자열 : Hello ^^ Nice to meet YOU !!
문자열의 길이 : 28
변환된 문자열 : hELLO ^^ nICE TO MEET you !!
Press any key to continue

3. 이해
  - 문자열을 입력 받을수 있는가?
  - 문자의 속성을 이해하고 변경 할수 있는가?

4. 코드

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

int main()
{
 char in[255];
 int i = 0;
 printf("문자열을 입력하세요 : ");
 gets(in);

 printf("입력된 문자열 : %s\n", in);
 printf("문자열의 길이 : %d\n", strlen(in));
 printf("변환된 문자열 : ");

 while(in[i] != 0)
 {
  if(islower(in[i])) putchar(toupper(in[i]));
  else putchar(tolower(in[i]));
  i++;
 }
 
 putchar('\n');

 return 0;
}

5. 해설
  - 문자열을 받을수 있는 길이를 255 칸으로 한정합니다.
  - gets 으로 문자열을 받습니다. scanf 로 할수 있지만 띄워 쓰기 같은 문자(Whitespace)를 인식
    못하기 때문에 문제가 됩니다.
  - toupper 와 tolower 함수는 각각 대문자와 소문자로 바꾸는 함수 이며 islower 함수는 소문자인지
    아닌지 확인하는 함수 입니다.
  - strlen 함수는 문자열의 길이를 출력하는 함수 입니다.

6. 참고
   - 유사 문제