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


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

소스코드

for(int i=0; i<strlen(s1); i++)
    s2[strlen(s1)-i-1] = s1[i];
  • 2016년 02월 01일에 작성됨

조회수 225


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;
    }
}
  • 2016년 02월 01일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close