C++输入一个字符串,将其逆序存放并输出。 求一个C语言程序

如题所述

#include "stdio.h"
int main()
{
   char input[100]={0},output[100]={0};
   int i,length=0;
   printf("请输入一个字符串:");
   gets(input);
   for(i=0;input[i]!='\0';i++)
     length++;
   for(i=0;i<length;i++)
     output[i]=input[length-1-i];
   printf("逆序存放后输出:");
   puts(output);    
  
}

追问

有木有简单的。这种没学过。只求老师给过。

和这个差不多的

追答

你老师这个还更复杂些吧
他的算法是第一个字符和最后一个字符交换,第二个和倒数第二个交换。
一直交换到字符串中间,就刚好全倒序了。
我这边的算法就是另外找个字符串,
把你输入的字符串,到最后一个开始到第一个字符,依次复制进去。

追问

大神呀。 谢谢了

追答#include "stdio.h"
#include "string.h"
void inverse(char str[])
{
   int i,length;
   char tmp;
   length=strlen(str);
   for(i=0;i<length/2;i++)
   {
      tmp=str[i];
      str[i]=str[length-1-i];
      str[length-1-i]=tmp;
   }
}
void main()
{
   char ch[80];
   printf("请输入一个字符串:");
   gets(ch);
   inverse(ch);
   printf("逆序存储后的字符串为:");
   puts(ch);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-07
#include<stdio.h>
#include<string.h>
int main(void)
{
    char ca[200] = "";
    scanf("%s",ca);
    int i = 0,len = strlen(ca);
    char ch;
    for(i=0;i<len/2;i++)
    {
        ch = ca[i];
        ca[i] = ca[len-1-i];
        ca[len-i-i] = ch;
    }
    printf("%s\n",ca)
    return 0;
}

第2个回答  2014-01-07
也就是楼上那个回答,我复制过来改了一下,虽然他定义了一个string非c类型的,但是他也没有用,都一样的
#include<stdio.h>
int main()

{

char ca[200] = {0};

scanf("%s",ca);

int i = 0,len = strlen(ca);

char ch;

for(i=0;i<len/2;i++)

{

ch = ca[i];

ca[i] = ca[len-1-i];

ca[len-i-i] = ch;

}

printf("%s\n",ca)

return 0;

}
第3个回答  2014-01-07
是复制粘贴吗?ctrl+c(复制)ctrl+v(粘贴)追问

C语言编程序

C语言编程

相似回答