티스토리 뷰

[C언어 문제] 문자열 번갈아 출력하기

최대 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; 
} 
신고

Recent Comments