1. 목적

  - 소문자로 변환 할줄 안다.

2. 문제
  - 문장을 입력받아 대문자를 소문자로 나머지 문자는 그대로 출력하는 프로그램을 작성하라.
  - 출력 화면

http://Cakel.tisTory.cOM
http://cakel.tistory.com

Press any key to continue

3. 이해
  - 대문자를 소문자로 변환할줄 아는가?
  - 문장을 입력 받을 수 있는가?

4. 코드

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

int main()
{
 char input[255] = {0};
 int i = 0;
 gets(input);
 while(input[i])
 {
  if(isupper(input[i]))
   putchar(tolower(input[i]));
  else putchar(input[i]);
  i++;
 }
 putchar('\n');

 return 0;
}

5. 해설
  - 대문자인지 확인하여 대문자이면 소문자로 그렇지 않으면 그대로 출력하는 알고리듬입니다.
  - 한글자씩 검사후 putchar로 출력합니다.
  - 문자 속성 확인 및 변환은 ctype.h 라는 라이브러리에 있습니다.

6. 참고
  - http://cakel.tistory.com/entry/2003년-기말-5번-대소문자-변경-2 : 유사 문제

Posted by 카켈



1. 목적

  - 대소문자를 변경할줄 안다.
  - 자료를 키보드에서 입력받을줄 안다.

2. 문제
  - 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 출력한다.
  - 문자의 속성을 변경하는 함수인 ctype.h 를 이용한다.
  - 출력 예

문자열을 입력하세요. : cakel.TisTory.com
입력받은 문자열 : cakel.TisTory.com
변 환 된 문자열 : CAKEL.tIStORY.COM
Press any key to continue

3. 이해
  - 대문자 소문자의 개념을 이해하고 바꿀수 있는가?
  - 문자를 입력받아 문자열로 저장할수 있는가?
  - ctype 에서 제공하는 함수를 이용할수 있는가?

4. 해결코드

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

int main()
{
 char inputchar[255],outputchar[255];
 int i = 0;
 

 printf("문자열을 입력하세요. : ");
 scanf("%s",inputchar);
 
 printf("입력받은 문자열 : ");
 printf("%s\n",inputchar);

 while(inputchar[i])
 {
  if(islower(inputchar[i])) outputchar[i] = toupper(inputchar[i]);
   else outputchar[i] = tolower(inputchar[i]);
   
  i++;
 }

 outputchar[i] = NULL;
 
 printf("변 환 된 문자열 : ");
 printf("%s\n",outputchar);

 return 0;
}

5. 코드해설
  - ctype.h 는 문자의 속성을 확인하고 대문자/소문자로 변경할수 있게 함수를 제공합니다.
  - while 문으로 입력받은 문자가 NULL 이 될때 까지 계속 반복하여 대문자/소문자 확인 및 변경을 합니다.
  - 마지막에 NULL 문자를 추가하여 문자열을 완성합니다.
  - scanf 문으로 해당 문자열을 입력받습니다.

6. 추가 정보
  - http://www.cplusplus.com/reference/clibrary/cctype/ : ctype.h
  - http://www.cplusplus.com/reference/clibrary/cstdio/scanf.html : scanf 함수 설명

Posted by 카켈
이전페이지 1 다음페이지