버퍼 하나만 써서 C/C++ 문자열을 뒤집으려면 어떻게 해야 될까요?
조회수 1348회
제가 아는 방법은 버퍼를 2개 쓰는 방법인데 버퍼 하나만 써서 C/C++ 문자열을 뒤집으려면 어떻게 해야 될까요?
소스코드
for(int i=0; i<strlen(s1); i++)
s2[strlen(s1)-i-1] = s1[i];
1 답변
-
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; } }
댓글 입력