c 언어 배열을 이용한 반대로 출력 코드 질문 입니다.

ansdyd66의 이미지

밑에 코드를 응용하여 배열을 사용해서
숫자를 입력 받아서
그 숫자를 입력 받은 순서 반대로 출력하고 싶습니다.
12345 로 입력 받으면 54321 로 출력하고 싶습니다.

#include <stdio.h>
#include <string.h>
 
void reverseString(char* s);
 
 
int main(void) {
    char s[] = "hello" ;
 
    reverseString(s);
 
    printf("%s\n", s);
 
    return 0;
}
 
void reverseString(char* s) {
    size_t size = strlen(s);
    char temp;
 
    for (size_t i = 0; i < size / 2; i++) {
        temp = s[i];
        s[i] = s[(size - 1) - i];
        s[(size - 1) - i] = temp;
    }
}
세벌의 이미지

프로그램 연습이라면 여러가지 시도해 보시고, 기존 함수를 활용한다면...
https://www.programmingsimplified.com/c-program-reverse-string
https://www.geeksforgeeks.org/quickly-reverse-string-c/
등등을 참고해 보시면 되겠네요.
구글에서
reverse string
찾아보면 많이 나와요...

라스코니의 이미지

그래서 뭐가 안되는 건가요? 컴파일 에러가 나나요? 아님 실행 결과가 이상하게 나오나요?
대신 해달라는 말씀인가요?

익명 사용자의 이미지

만약 맞다면 scanf 함수로 입력 받으시면 됩니다.

int main(void)
{
    char buf[256];
 
    scanf("%s", buf);
    ...
}
Yi Soo An@Google의 이미지

'문자열'을 출력만 하고자 한다면 간단하게 재귀로 설계할 수 있습니다.

void
reverse_string(char *ch)
{
    if (*ch == '\0')
        return;
    reverse_string(ch+1);
    putchar(*ch);
}

---------------
Happy Hacking!

세벌의 이미지

컴파일, 실행 해 보셨나요?

Yi Soo An@Google의 이미지

---------------
Happy Hacking!