请补充函数fun(char *s),该函数的功能是把字符串中的内容逆置。
例如:字符串中原有的字符串为abcde,则调用该函数后,串中的内容变为edcba。
注意;部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
$include<string.h>
#include<conio.h>
#include<stdio.h>
#define N 81
void fun(char*s)
int i=0,t,n=strlen(s);
for(; 【1】 ;i++)
t=*(s+i);
【2】 ;
【3】 ;
main()
char a[N];
clrscr();
printf("Enter a string:");
gets(a);
printf("The original string is:");
puts(a);
fun(a);
printf("\n");
printf("The string after modified:");
puts(a);
参考答案:[1] i<n/2或s+i<s+n-1-i或i<n-1-i [2]*(s+i)=*(s+n-1-i) [3]*(s+n-1-i)=t
解析: 填空1:将字符串的内容逆置,实际上就是将第一个字符和最后一个字符交换,再将第二个字符与倒数第二个字符交换,依此类推,直到中间的字符为止。所以,长度为n的字符串需要交换的次数为n/2。还可以这样理解,交换时始终保持顺数的字符在倒数的字符前面。填空2:顺数第i个字符为*(s+i),倒数第i个字符为*(s+n-1-i)。填空3:掌握利用第三个变量进行变量交换的方法。本题中,第三个变量为t。