一道C语言试题,不知道错在哪里了,大神求指教
程序代码:题目的内容是:假定输入的字符串中只包含字母和*号,请编写函数fun它的功能是:除尾部*号外,将字符串中其它*号全部删除。形参p已指向字符串中最后一个字母(红色的是我写的fun函数,虽然是十分麻烦,我觉得应该能输出正确结果的,求大神指教啊)
#include <stdio.h>
void fun(char *a, char *p)
{char m[81]={'0'};
char *q=m;
int j=0;
while(a<p)
{ if(*a!='*')
*q++=*a;
a++;}
while(*a)
{ *q++=*a;
a++;}
*q='\0';
while(*q)
*a++=*q++;
*a='\0';
}
main()
{char s[81],*t;
void NONO ();
printf("Enter a string:\n");gets(s);
t=s;
while(*t)t++;
t--;
while(*t=='*')t--;
fun(s , t);
printf("The string after deleted:\n");puts(s);
NONO();
}
void NONO()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *in, *out ;
int i ; char s[81],*t ;
in = fopen("in.dat","r");
out = fopen("out.dat","w");
for(i = 0 ; i < 10 ; i++) {
fscanf(in, "%s", s);
t=s;
while(*t)t++;
t--;
while(*t=='*')t--;
fun(s,t);
fprintf(out, "%s\n", s) ;
}
fclose(in);
fclose(out);
}
[此贴子已经被作者于2017-3-21 11:05编辑过]






