티스토리 뷰

반응형

C언어 독학 기초 # % 나머지연산 이용한 문자 증가

모든 강의 자료 : www.codingnow.co.kr/

아스키 코드값을 이해하고

문자를 원하는 만큼 이동하는

내용입니다.

[참고]

https://cflab2017.tistory.com/64

 

C언어 독학 기초 # 아스키코드표 #

개발자의 C언어 독학 기초 # 아스키코드표 20년 개발 경력자의 블로그 입니다. 프로그래밍을 하다보면 아스키코드표를 수없이 참조하게 된다. ​ 문자열의 각각은 하나의 문자로 이루어지고 여기서 이 하나의 문..

cflab2017.tistory.com

'a'는 hex로 0x62이고

0x62를 1더하면 0x63즉 'b'가된다.

이것을 이용하여

입력받은 문자를

입력받은 수만큼 증가시키는

코드를 구현해 본다.

우선 scanf를 이용하여

문자와 숫자를 입력 받는다.

char inputW;
int inputN;

printf("문자를 입력하세요 : ");
scanf("%c",&inputW);
fflush(stdin); //입력 버퍼지우기

printf("숫자를 입력하세요 : ");
scanf("%d",&inputN);

'a'와 'z'사이의 문자만

처리하도록 예외처리를 한다.

일단 입력받은 수만큼 더한다.

z를 넘는 경우를 대비하여

나머지 연산을 통해

'a'부터 증가하도록 처리를 한다.

'z'가 0x7A이니까

0x7B로 나눈 나머지 값을

'a'에 더하면 끝!!

if((inputW >= 'a') && (inputW <= 'z'))
{
  inputW += inputN;
  if(inputW > 'z')
  {
  	inputW = 'a'+ (inputW %('z'+1));
  }
}else if((inputW >= 'A') && (inputW <= 'Z'))
{
  inputW += inputN;
  if(inputW > 'Z')
  {
  	inputW = 'A'+ (inputW %('Z'+1));
  }
}else{
	;
}

결과를 출력한다.

printf("%d만큼 증가시킨 문자는 [%c] 입니다.",inputN,inputW);

이것은 전체 소스이다.

#include <stdio.h>

int main(void)
{

  char inputW;
  int inputN;

  printf("문자를 입력하세요 : ");
  scanf("%c",&inputW);
  fflush(stdin); //입력 버퍼지우기

  printf("숫자를 입력하세요 : ");
  scanf("%d",&inputN);


  if((inputW >= 'a') && (inputW <= 'z'))
  {
    inputW += inputN;
    if(inputW > 'z')
    {
    	inputW = 'a'+ (inputW %('z'+1));
    }
  }else if((inputW >= 'A') && (inputW <= 'Z'))
  {
    inputW += inputN;
    if(inputW > 'Z')
    {
    	inputW = 'A'+ (inputW %('Z'+1));
    }
  }else{
  	;
  }

  printf("%d만큼 증가시킨 문자는 [%c] 입니다.",inputN,inputW);
  return 0;
}

출력된 결과값이다.

반응형