티스토리 뷰

최대 100자의 문자를 키보드로부터 입력받아 이를 아래와 같이 출력하는 과정을 계속 반복하는 프로그램을 작성하라. 단, 'x'만 입력되면 프로그램은 종료된다. 키보드 입력은 gets() 함수를 사용한다. (포인터 개념 이용. 한글 입력은 제외)


입력 : abcdef -> 출력 afbecd




#include <stdio.h> 
#include <string.h> 
int main() 
{ 
   char str[100]; 
   char index1=0,index2=0, str_len=0; 
   // 문자열 입력 받음 
   gets(str); 
   // z인 경우 종료 
   if (!strcmp(str, "z")) 
   return -1; 
   // 배열 인덱스를 0부터 시작하는 인덱스와 문자열의 마지막부터 시작하는 인덱스 
   // 두개로 나누어서 index1은 1씩 더하고 index2는 1씩 뺀다. 
   // 그 두개를 연달아 출력한다. 
   index1 = 0; // 0부터 시작하는 배열 인덱스 
   index2 = strlen(str)-1 ;  // 문자열 끝부터 시작하는 배열 인덱스 
   str_len = strlen(str) ;  // 문자열 총 길이 저장 
   // 문자열 총 길이/2 값 - 문자열 끝부터 1씩 줄어드는 index2값이 
   // 0보다 작거나 같은 경우 문자열을 출력한다. 
   // 즉, index1, index2가 서로 만나기 전까지 출력 
   while( str_len/2 - index2 <= 0 ) 
   { 
      printf("%c", str[index1]); 
	  // 홀수 문자열을 입력했을 경우
	  if ( index1 == index2 )
		  break;
      printf("%c", str[index2]); 
      index1++; 
      index2--; 
   } 
   return 0; 
} 
댓글