새싹교실/2014/배반/3주차 (rev. 1.10)
- 튜터의 공사다망함으로 이번 주는 휴강.
- 과제를 내 줄 터이니 하시길.
- 영어를 입력하면 대문자와 소문자를 바꿔서 출력해주는 프로그램.
- 예를 들어 "I have bought a graphic card made by Nvidia." 를 입력하면 "i HAVE BOUGHT A GRAPHIC CARD MADE BY nVIDIA."
#include <stdio.h>
#define LINE 50 //문장의 길이
int main()
{
int i = 0;
char eng[LINE];
printf("영어 문장을 입력해 주세요. : ");
scanf("%[^\n]",&eng);
printf("입력 받은 문장 : %s \n",eng);
printf("변환된 문장 : ");
for ( i = 0; i < LINE ; i++)
{
if(eng[i] >= 'A' && eng[i] <= 'Z' )
{
eng[i] = eng[i] - 'A' + 'a';
printf("%c",eng[i]);
}
else if(eng[i] >= 'a' && eng[i] <= 'z')
{
eng[i] = eng[i] - 'a' + 'A' ;
printf("%c",eng[i]);
}
else if ( (eng[i] >= 0 && eng[i] < 'A') ||(eng[i] > 'Z' && eng[i] < 'a') || (eng[i] > 'z' && eng[i] <= 127) )
{
printf("%c",eng[i]);
}
else
{
printf("");
}
}
printf("\n");
return 0;
}
아스키코드로 결정
어쩌피 a랑 z부터도 아스키코드로 나타내면 숫자이기 때문에 if문안쪽에 부등호로 표현하면 될듯!
A 랑 Z도 숫자니까 if문 부등호로 표현할생각
그리고 32를 뺴거나 더하면 굳
실행은내일...ㅈㅅ..
아이디어 생각난김에 메모좀 해놓을게요. -아스키 코드, if문 이용- 대문자 입력받으면 그 정수 값에다가 (a-A에 대응하는 숫자값)만큼 더해서 char로 출력, 소문자 입력받으면 빼서 출력 if문으로 범위 설정! ->한개씩은 처리 가능할 듯 문장 전체는 좀더 생각좀..
배열을 써보까
문자열 받는것도 고려해볼게요 스트링인가
되엇당
#include <stdio.h>
int main()
{
int i=0;
char st[500]={0,};
printf("영어 문장을 입력하세요 (최대 500자)\n");
gets(st);
for(i;i<500;i++)
{
if(64<st[i] && st[i]<91)
{
st[i]+=32;
}
else if(96<st[i] && st[i]<123)
{
st[i]-=32;
}
}
printf("%s",st);
return 0;
}