C++에서는 포인터를 이용하면 별도의 추가 배열 없이도 문자열을 간단히 거꾸로 출력할 수 있습니다. 핵심 원리는 다음과 같습니다.
먼저 strlen() 함수를 사용해 포인터가 가리키는 문자열의 길이를 계산합니다. 그다음 인덱스를 문자열의 끝에서부터 시작점까지 감소시키는 for 반복문을 실행하면서 각 문자를 순서대로 출력하면, 자연스럽게 역순의 문자열을 얻을 수 있습니다.
예제 코드
#include <string.h>
#include <iostream>
using namespace std;
int main(){
char *str = "ajaykumar";
cout << "원본 문자열::" << str;
cout << endl << "뒤집은 문자열::";
for(int i = (strlen(str) - 1); i >= 0; i--){
cout << str[i];
}
return 0;
}위 프로그램은 포인터 str에 저장된 문자열 "ajaykumar"를 받아, 마지막 문자부터 첫 번째 문자까지 역순으로 화면에 출력합니다. strlen(str)은 문자열의 실제 길이를 반환하므로, 여기서 1을 빼면 마지막 문자의 인덱스가 됩니다. 이후 인덱스가 0이 될 때까지 1씩 감소시키며 문자를 하나씩 출력하는 방식입니다.
실행 결과
원본 문자열::ajaykumar 뒤집은 문자열::ramukyaja
실행 결과를 보면 입력된 문자열 "ajaykumar"가 "ramukyaja"로 정확하게 뒤집혀 출력된 것을 확인할 수 있습니다. 이 방법은 시간 복잡도 O(n)으로 문자열 길이에 비례하여 동작하며, 포인터와 배열 인덱스 접근 방식을 함께 활용하는 대표적인 예제입니다.