소프트웨어/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
입력된 문자열 : 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. 참고
- 유사 문제