算法描述:通过char字符数组存储输入的字符串,再通过指针反序输出字符串,不改变实际的逻辑存储地址。
算法实现:
#include <stdio.h>
#include <stdlib.h>
//反序输出:不改变数组中存储位置,只改变指针指向
int main()
{
void output(char str[10]); //函数声明
char win[10];
printf("请输入一个字符串。。。。\n");
scanf("%s",win);//输入一个字符串
printf("输出中。。。。\n");
output(win);//反序输出
return 0;
}
void output(char str[10])//反序输出
{
char *p;//!!!指针类型是字符型
for(p=str+10;p>=str;p--)
printf("%c",*p);
return;
}
运行结果:
不足的地方:会浪费多余的内存空间,如上图。后面想到了再改进。
改进版:对for语句进行优化,优化后不会输出多余空格(空元素)
for(p=str+strlen(str)-1;p>=str;p--)