首页 > 解决方案 > 反向字符串(交换)

问题描述

我需要有关此考试的帮助。我需要反转输入字符串。

int main(void)
{
    char str[30];
    int strlen; int i=0; int count=0;int temp;int j;
    printf("Enter the string \n");
    gets(str);

    while(str[i]!='\0')
    {
        i++;
        count++;
    }
    strlen=count;
    printf("The length of the string:%d\n", strlen);
    i=0;
    j=strlen;

    while(i<j)
    {
        temp=str[i];
        str[i]=str[j];
        str[j]=temp;
        i++;
        j--;
    }
    printf("Reverse string :%s",str);

    return 0;
}

问题是最后它没有向我显示字符串。它向我展示了:

"Reverse string :" 

也就是说,没有反向字符串。我的错误在哪里?

标签: c

解决方案


在你的代码中你正在做

j=strlen;

j 指向字符串的最后一个索引,即 '\0'

稍后在您设置的循环中str[i]=str[j];

因此,第一个索引将是\0

打印 str 将不显示任何内容

为了使代码正确设置j=strlen - 1;


推荐阅读