反向打印字符串的C程序

时间:2018-01-04 12:25:35

标签: c string

我有一个问题,我想读一个字符串并反向显示

示例
(如果用户输入"表"程序应该这样回复)
Ë

BLE
能够

但是我的代码就像这样显示了 Ë
埃尔
ELB
埃尔巴
elbaT

这是我的代码:

#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
    char str[100];
    int i,w;
    printf("Enter a string: ");
    fgets( str,100,stdin);
    int s=strlen(str)-1;
    for(w=s-1;w>=0;w--)
    {
        for(i=s;i>=w;i--)
        {
            printf("%c",str[i]);
        }
    }
    return 0;
}

2 个答案:

答案 0 :(得分:1)

你的内环向后打印字符。如果您不想这样做,请不要这样做,而是执行

for (i=w; i<=s; i++)
{
  printf("%c",str[i]);
}

你也可以删除内部循环,然后从w开始简单地打印字符串的其余部分:

for(w=s;w>=0;w--)
{
    printf("%s\n", &str[w]);
}

答案 1 :(得分:0)

char str [] = "Table\n";
int slen = strlen (str) - 1;
for (int i = 0; i <= slen; i ++)
{
    printf ("\n");
    for (int j = slen - i; j < slen; j ++)
    {
        printf ("%c", str [j]);
    }
}