버퍼 하나만 써서 C/C++ 문자열을 뒤집으려면 어떻게 해야 될까요?

조회수 1337회

제가 아는 방법은 버퍼를 2개 쓰는 방법인데 버퍼 하나만 써서 C/C++ 문자열을 뒤집으려면 어떻게 해야 될까요?

소스코드

for(int i=0; i<strlen(s1); i++)
    s2[strlen(s1)-i-1] = s1[i];

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    1. std::revsere 사용

    C++에서 가장 짧고 간단하게 쓸 수 있는 방법입니다.

    #include <algorithm>
    std::reverse(str.begin(), str.end());
    

    2. swap처럼

    swap할 때 처럼 임시로 변수 int c를 써서 앞 뒤 값을 교환해줍니다.

    void reverse(char s[])
    {
        int length = strlen(s) ;
        int c, i, j;
    
        for (i = 0, j = length - 1; i < j; i++, j--)
        {
            c = s[i];
            s[i] = s[j];
            s[j] = c;
        }
    }
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)