C 단어 뒤집기 코드

조회수 662회

단어를 뒤집는 코드를 짜보았는데요, newWord 각각을 모두 확인해보면 알파벳 하나씩은 모두 출력이 되는데 %s를 통해서는 뒤집어진 단어가 출력되지 않아서요 왜 그런건가요?

#include <stdio.h>

int main(void) {

    char word[30];
    char newWord[30];
    int idx = 0;

    printf("Input the word\n");
    scanf("%s", word);

    while(word[idx] != '\0') {
        idx++;
    }

    newWord[idx+1] = '\0';
    for(int i = 0; i <= idx; i++) {
        newWord[i] = word[idx-i];
        printf("%c\n", newWord[i]);
    }

    printf("%d", newWord[idx+1]);
    printf("the new word is %s\n", newWord);

    return 0;
}
  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • #include <stdio.h>
    
    int main(void) {
        int i, idx = 0; //for문 사용을 위한 i와 최대 개수를 구하기 위한idx 
        char inputString[20]; //입력 받을 문장. 
        char newString[20]; //뒤집혀서 넣어질 문장 
    
        printf("String input : ");
        scanf("%s", inputString); //입력 받음 
    
        while(inputString[idx] != '\0') {
            idx++; //최대값을 구함 
        }
    
        newString[idx] = '\0'; //뒤집힐 문장에 끝에 Null문자를 넣음 
        for(i = 1; i <= idx; i++) {
            /*
            inputString에서 받은 것중 뒤집힐 문장은
            최대 바로 전인 idx-1이기 때문에 i를 1부터 시작함.
            inputString에서 받은 문자를 처음부터 넣어햐 하기 때문에
            i-1로함. 
            */ 
            newString[idx-i] = inputString[i-1];
        }
    
        //뒤집힌 문장 출력. 
        printf("%s\n", inputString);
        printf("%s\n", newString);
    
        return 0;
    }
    

    이렇게 하면 실행이 잘됩니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)