活动设计题
假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:删除字符串中所有的*号。在编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:ABCDEFG。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include<stdio.h>
void fun(char *a)
{
}
main()
{char s[81];
void NONO();
printf('Enter a string:\n'); gets(s);
fun(s);
printf('The string after deleted:\n'); puts(s);
NONO();
}
void NONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *in, *out;
int i; char s[81];
in=fopen('in.dat', 'r');
out=fopen('out.dat', 'w');
for(i=0; i<10; i++) {
fscanf(in, '%s', s);
fun(s);
fprintf(out, '%s\n', s);
}
fclose(in);
fclose(out);
}
【正确答案】int j=0; char *p=a; while(*p) { if(*p!='*')a[j++]=*p; p++; } a[j]='\0'; 答案考生文件夹
【答案解析】该程序功能是删除字符串中所有的*号。解题思路是在while循环过程中,利用if判断表达式判断每一个字符是否为“*”号,如果不是将其拷贝到字符串,否则跳过,这样就实现了函数功能。 [考点] 字符数组和字符串。