【问题标题】:program to reverse string skipping some characters while printing程序在打印时反转字符串跳过一些字符
【发布时间】:2018-05-26 14:31:22
【问题描述】:

它以相反的顺序打印字符就好了字符串长度为 8 个字符时除外

例如-

what man”给出“am tahw”为什么?

而 "what many" 给出了 "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");



}

【问题讨论】:

    标签: arrays string pointers


    【解决方案1】:

    修改您的代码:

    1. 在 while 循环中将 printf("%c", *i--); 更改为 printf("%c", *--i);

    您可以提高程序的质量,如下所示:

    #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();
    }
    

    【讨论】:

    • 是的,但我的问题是为什么 "what man" 给出 "am tahw" ?为什么它会跳过一个字符,我无法绕过它。
    • @callmeanythingyouwant 因为您的代码中有一些逻辑错误。检查我修改后的答案。现在让我知道它是否工作正常。
    • 嘿,是的,您的解决方案正在运行。哇。我仍然不明白为什么。你能解释一下吗?
    • @callmeanythingyouwant 让我知道您在代码中遇到的问题,我一定会联系您。
    猜你喜欢
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 2017-04-13
    • 2017-06-25
    相关资源
    最近更新 更多