목적
   - 동적 할당을 이해하고 문자열에 적용 시킨다.

문제
사용자 삽입 이미지

코드

#include <iostream>
#include <cstring>

using namespace std;

int main(void)
{
 char sIn[255] = {0};
 char *sString = NULL;
 int i = 0;

 cout << "문자열 입력 : ";
 cin.getline(sIn,255);

 sString = new char[strlen(sIn) + 1];
 strcpy(sString, sIn);

 cout << "공백제외한 역순 출력 :";

 for(i = strlen(sString); i >= 0; i--)
 {
  if (sString[i - 1] != ' ')
   cout << sString[i];
 }
 
 cout << endl;

 sString = NULL;
 delete sString;

 return 0;
}

해설
  - sString 은 시작시 단일 문자를 저장하는 주소를 담는 4바이트 문자형 포인터입니다. sIn 에 값이 들어 오면 길이를 확인하여 동적으로 sString 를 늘려 줍니다. 프로그램 상에서 동적으로 늘렸기 떄문에 마칠때 delete 로 삭제를 해줍니다.

참고
  - 유사 문제 검색
Posted by 카켈