[알고리즘] 문자열 뒤집기[알고리즘] 문자열 뒤집기

Posted at 2015.02.12 11:56 | Posted in 알고리즘 문제



facebook에 글올리기



[알고리즘] 문자열 뒤집기


문제

널 문자로 끝나는 문자열을 뒤집는 reverse(char* str) 함수를 C나 C++로 구현하라.


풀이

문자열 배열 str 의 포인터를 인자로 받아와 이 문자열 배열을 역순으로 뒤집는 함수를 작성한다.


역순으로 뒤집는 방법으로 배열의 처음과 마지막 위치로부터 중간값까지 서로 값을 바꿔주면 역순으로 위치가 변경된다.


 Colored By Color Scripter

#include <iostream>

void reverse(char* str);

int main(){
    
    char str[50]= "AbcdeFfsecse f ed sf";
    std::cout << str << std::endl;

    reverse(str);
    std::cout << str << std::endl;

    return 0;
}


void reverse(char* str){

    char* end = str;
    char tmp;

    if (str){
        while (*end){
            ++end;
        }
    }
    --end;

    while (str < end){
        tmp = *str;
        *str++ = *end;
        *end-- = tmp;
    }
}


이웃추가
facebook에 글올리기

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기