728x90
반응형
더보기
// 현수의 컴퓨터가 바이러스에 걸려 영어단어가 띄어쓰기와 대소문자가 혼합되어 표현된다.
// 에러 단어로 표시되는 영어단어를 원래의 표현대로 공백을 제거하고 소문자화 시켜 출력하는 프로그램을 작성하시오.

// 입력설명
// 첫 줄에 바이러스에 걸린 영어단어가 주어진다. 바이러스에 걸린 영어단어의 길이(공백포함)은 100을 넘지 않는다. 
//문자 사이의 공백은 연속적으로 존재 할 수 있습니다. 입력은 알파벳과 공백만 주어집니다.

// 출력설명
// 첫 줄에 소문자로 된 정상적인 영어단어를 출력한다. 

# include <stdio.h>

int main(){
	char input[101]; // 100을 넘지 않으니 101
	char pr[101];   // 출력하는 배열 
	int i=0;
	while((input[i] = getchar())!='\n')  // enter 입력시 종료 
	{
		
		if(input[i] != ' ')   // 공백이 아닐 시에만 
		{
			if(input[i]>=97 && input[i] <= 122) // ASCII 97 == a, 122 == z  
			{
				pr[i] = input[i]; // 97>= <=122 일 경우만 pr[i]에 input[i] 넣는다. 
			}
			
			else if(input[i]>=64 && input[i] <=90) // ASCII 64 == A , 90 == Z 
			{
				pr[i] = input[i] + 32; // 소문자로 변환이기 때문에 + 32 
			}
			else
			{
				continue; // 위의 두 조건문이 아닐 경우 continue 
			}		
		}
		else
		{
			continue;
		}
		putchar(pr[i]);
		i++;
	}
	
	return 0;
}

** 대문자로 복구하고 싶다면 조건문의 숫자만 변경하면 끝.

[그림1] 영어 단어 복구 예제 출력

 

문제 출처 : 인프런 it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기