Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 포인터를 활용한 문자열 역순 출력 방법

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)으로 문자열 길이에 비례하여 동작하며, 포인터와 배열 인덱스 접근 방식을 함께 활용하는 대표적인 예제입니다.