用C语言编写程序:接收用户输入的字符串,并以相反的顺序输出该字符串

这是我们C语言老师留的作业,请给出具体的代码,使我把它们复制到记事本中可以用VC6运行。

#include<stdio.h>
#include<string.h>
int main()
{
int i,len; //接受字符串长度
char str[10000]; //定义字符型数组 开到10000应该够长了
scanf("%s",str); //向str数组中输入字符串
// gets(str); //这里是另一种方法 用这种可以读入空格
len=strlen(str); //使用strlen函数 得到字符串长度
for(i=len-1;i>=0;i--)
printf("%c",str[i]); //反序输出 这里字符串长度减1 因为数组是从0开始的
printf("\n"); //换行
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-02
#include<stdio.h>
#include<string.h>
int main(void){
char i[64];
int j,k;

printf("请输入一个字符串:");
gets(i);
printf("你输入的字符串是:%s\n",i);

j=strlen(i);
printf("字符串长度是:%d\n",j);
printf("你输入的逆转结果:");

for (k=0;k<=strlen(i);k++){
printf("%c",i[--j]);
}
return 0;
}
第2个回答  2010-06-10
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct {
char s[512];
char (*fun1)(char *src);
}func;

char *revers(char *src);

int main(void)
{
func *test=(func *)malloc(sizeof(func));
test->fun1=revers;
strcpy(test->s,"abc");
test->fun1(test->s);
printf("%s",test->s);

}

char *revers(char *src)
{
char *tmp=src; //使用tmp保留src
char *firstpos;
char *lastpos;
firstpos=src;//指向src第一个字符
while(*tmp != '\0') tmp++;
lastpos=tmp-1;//指向src最后一个字符
while(firstpos<lastpos)
{
/*交换,没有用中间变量*/
*firstpos=(*firstpos)+(*lastpos);
*lastpos=(*firstpos)-(*lastpos);
*firstpos=(*firstpos)-(*lastpos);

firstpos++;
lastpos--;
}
return src;
}
第3个回答  推荐于2016-06-05
#include <stdio.h>
#include <string.h>
#include <conio.h>

int main()
{
char input[1024];
int len, i;
printf("Input string...\n");
gets(input);
len = strlen(input);
for (i = len-1; i>=0; i--)
{
printf("%c", input[i]);
}
printf("\n");
getch();
return 0;
}本回答被提问者采纳
第4个回答  2010-06-10
#include <stdio.h>
#include <string.h>

void main()
{
char arr[100],temp;
int i,arr_size;
puts("Input the string: ");
gets(arr);
arr_size=strlen(arr);
for (i=0;i<arr_size/2;i++)
{
temp=arr[i];
arr[i]=arr[arr_size-1-i];
arr[arr_size-1-i]=temp;
}
puts("The sorted string: ");
puts(arr);
}