본문 바로가기
C and C++/C and C++ Examples

[C Examples] 출력되는 문장 거꾸로 뒤집기: void printReverse(), sizeof(), if()

by Henry Cho 2023. 11. 28.
728x90

출력되는 문장 거꾸로 뒤집기: void printReverse(), sizeof(), if()

포스트 난이도: HOO_Intern


# Example Code

이번 예제코드에서는 void function을 사용해서 printReverse라는 recursive function을 만들어준 뒤에 출력되는 문장을 거꾸로 뒤집어줄 수 있다.  Recursive는 프로그래밍에서 많이 사용하는 간단한 기능이기 때문에 어떻게 구현하는지를 정확히 이해하고 가는 것이 중요하다. 처음에는 다소 어려워 보이지만 "반복"에 초점을 두고 코드를 살펴보면 이해하는데 어렵지 않을 것이다. 아래의 예제코드에서는 void function 안의 printReverse() function이 어떻게 작성되어 적용되는지를 보는 것이 가장 중요하다. void 안의 if문은 주어진 문장의 길이가 0이 되면 recursive에서 벗어나게끔 설정이 되어 있다. 여기서 유추할 수 있듯이 아래 코드의 recursive function은 주어진 variable에서 -1씩 문자가 빠지면서 0이 될 때까지 반복된다는 걸 알 수 있다. 이후에 작성된 printReverse () 함수는 반복적인 역할을 수행하여 문자열이 거꾸로 모두 출력될 수 있도록 만들어준다. 각 코드마다 코멘트를 달아두었으니 참고하여 연습해 보길 바란다.


#include <stdio.h>

// Recursive function
void printReverse(char str[], int length) {
    // If the string is empty, do nothing.
    if (length == 0) {
        return;
    }
    
    // Print the last char
    printf("%c", str[length - 1]);
    
    // Recursive call to print
    printReverse(str, length - 1);
}

int main() {
    char input[] = "Welcome";
    
    printf("Original Word: %s\n", input);
    printf("Backward Word: ");
    
    // Exclude the null terminator
    int length = sizeof(input) - 1;
    
    // Call the recursive function
    printReverse(input, length);
    
    printf("\n");
    
    return 0;
}

 


Figure 1. Result of example code


Figure 2. Result of example code


# github link

https://github.com/WhoisHOO/HOOAI/blob/main/C%20Examples/simple_recursive


 

 
728x90

댓글