/*写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串*/
#include <stdio.h>
#include <string.h>
//反序存放的函数
int fun1(char c[50])
{
char i,j,t;
j = strlen(c) - 1;
for(i = 0;i < strlen(c) / 2;i++,j--)
{
t = c[i];
c[i] = c[j];
c[j] = t;
}
}
int main()
{
char c[50];
printf("请输入字符:\n");
gets(c);
fun1(c);
printf("反序存放后:\n");
puts(c);
}
谭浩强C程序设计(第四版)p218第5题,这个是直接在原字符数组进行反序存放的,还可以再使用一个字符数组
/*写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串*/
#include <stdio.h>
#include <string.h>
//反序存放的函数
char* fun1(char c[50],char a[50])
{
int i,j;
for(i = (strlen(c)- 1),j = 0;j < strlen(c);i--,j++)
a[j] = c[i];
return a;
}
int main()
{
char c[50],a[50];
int i;
printf("请输入字符:\n");
gets(c);
fun1(c,a);
printf("反序存放后:\n");
for(i = 0;i < strlen(c);i++)
printf("%c",a[i]);
}
复习:
1.可以return返回数组的地址,但这个数组只能是形参。
2.数组a没有输入值,所以直接用puts会出现输出垃圾值的现象。