一道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编辑过]