活动设计题
请编一个函数fun(char*s),函数的功能是把s所指字符串中的内容逆置。
例如:字符串中原有的字符串为:abcdefg,则调用该函数后,串中的内容为:gfedcba。
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<string.h>
#include<stdio.h>
#define N 81
fun(char *s)
{
}
NONO()
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。 */
int i;
char a[N];
FILE *rf, *wf;
rf=fopen('in.dat', 'r');
wf=fopen('out.dat', 'w');
for(i=0; i<10; i++) {
fscanf(rf, '%s', a);
fun(a);
fprintf(wf, '%s\n', a);
}
fclose(rf);
fclose(wf);
}
main()
{char a[N];
printf('Enter a string:'); gets(a);
printf('The original string is:'); puts(a);
fun(a);
printf('\n');
printf('The string after modified:');
puts(a);
NONO();
}
【正确答案】char b [N]; int i=0, j; memset(b, 0, N); for(j=strlen(s)-1; j>=0; j--)b[i++]=s[j]; strcpy(s, b); 答案考生文件夹
【答案解析】该程序功能是字符串中的内容逆置。把字符串中字符逆置,就是把字符串中的第一个元素和最后一个元素交换,第二个元素和倒数第二个元素交换,直到所有元素交换完成为止。 [考点] 字符数组和字符串、for循环结构。