How to print an entered string backwards in C using only a for loop

前端 未结 6 1041
日久生厌
日久生厌 2021-01-16 12:15

I want to print a string backwards. But my code seems to count down the alphabet from the last letter in the array to the first letter in the array instead of counting down

相关标签:
6条回答
  • 2021-01-16 12:56
    #include <stdio.h>
    #include <stdlib.h>
    
    /*
     * 
     */
    int main(int argc, char** argv) {
        int i;
        char letters[3]="";
        printf("Enter three letters!");
        scanf("%s",letters);
        for(i=3;i>=0;i--){
            printf("%c", letters[i]);
        }
        return (EXIT_SUCCESS);
    }
    
    0 讨论(0)
  • 2021-01-16 12:59

    You want to print word[x] (the xth character in the array) instead of x (the xth character in the character set).

    You also want to be counting down indexes, not characters.

    for(x=end, x >= 0; x--)
        printf("%c", word[x]);
    
    0 讨论(0)
  • 2021-01-16 13:00
    //Change end to int type and modify your for loop as shown.
    #include <stdio.h>
    #include <string.h>
    
    int main(void) 
    {
    
    char word[50];
    int end;
    char x;
    
    printf("Enter a word and I'll give it to you backwards: ");
    
    scanf("%s", word);
    
    end = strlen(word) - 1;
    
     for (x = end; x >= 0; x--) 
     printf("%c",word[x] );
    
    
    return 0;
    }
    
    0 讨论(0)
  • 2021-01-16 13:10

    What you have loops between the array element values. You want to loop between the array indexes. Update your loop to the following:

    for (x = end; x >= 0; --x) {
        printf("%c", word[x]);
    }
    

    Note that this goes from the last index to zero and output the character at that index. Also a micro-optimization in the for loop using pre-decrement.

    0 讨论(0)
  • 2021-01-16 13:16

    In your loop, x is the index into the character array comprising word. So x should change from end to 0, and referencing the array should be as word[x].

    0 讨论(0)
  • 2021-01-16 13:20

    You're calling array values and not the specific index.

    for(x = end; x >= 0; x--) { printf("%c", word[x]); }
    
    0 讨论(0)
提交回复
热议问题