/*
編寫一個函數,其功能是使輸入字符串反序。在一個使用循環語句為這個函數提供輸入的完整
程序中進行測試。
*/
#include<stdio.h>
#include<string.h>
void fanxu(char *zf); //反序函數
int main(void)
{
char a[80];
do
{
gets(a);
fanxu(a);
printf("是否繼續(y/n):");
gets(a);
} while (*a != 'n');
return 0;
}
/* //方法一:
void fanxu(char *zf)
{
char *pc;
pc = zf;
while (*++pc)
{
continue;
}
pc--;
while (pc >= zf)
{
putchar(*pc);
pc--;
}
putchar('\n');
}
*/
/* //方法二:
void fanxu(char *zf)
{
char *pc;
pc = zf + strlen(zf);
while (--pc >= zf)
{
putchar(*pc);
}
}
*/
/* //方法三:
void fanxu(char *zf)
{
int i, n;
char temp;
for (n = 0; *(zf + n) != '\0'; n++)
continue;
n--;
for (i = 0; i < n - i; i++)
{
temp = zf[i];
zf[i] = zf[n - i];
zf[n - i] = temp;
}
puts(zf);
}
*/
//方法四:
void fanxu(char *zf)
{
int i, n;
char temp;
n = strlen(zf)-1;
for (i = 0; i < n-i; i++)
{
temp = zf[i];
zf[i] = zf[n - i];
zf[n - i] = temp;
}
puts(zf);
}