程序在打印时反转字符串跳过某些字符

时间:2018-05-26 14:31:22

标签: arrays string pointers

它以相反的顺序打印字符,除非字符串长度为8个字符

例如 -

什么人”给出“ am tahw ”为什么?

而“多少”给予“ynam tahw”就像它应该的那样。

#include <stdio.h>

int main(void)
{
    char a[100];
    char x;
    char*i = a;
    printf("Enter a message:");
    while ((x = getchar()) != '\n')
    {
        *i = x;
        i++;

    }

    while (i >= &a[0])
    {
        printf("%c", *i--);
    }
    printf ("\n");



}

1 个答案:

答案 0 :(得分:0)

代码中的修改:

  1. 在while循环中将printf("%c", *i--);更改为printf("%c", *--i);
  2. 您可以改善计划的质量,如下所示:

    #include <stdio.h>
    #include <conio.h>
    void main()
    {
        char *s;
        int len,i;
        clrscr();
        printf("\nENTER A STRING: ");
        gets(s);
        len=strlen(s);
        printf("\nTHE REVERSE OF THE STRING IS:");
        for(i=len;i>=0;i--)
            printf("%c",*(s+i));
        getch();
    }
    
相关问题