题目如下:假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:是字符串中尾部的*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。n的值在主函数中输入,在编写函数时,不得使用C语言提供的字符串函数。
我的做法如下:#include
void fun(char *a,int n)
{
int i=0,j=0,k,m;
char *b=a,*c=a;
while(*b)
{i++;b++;}
b--;
while(*b=='*')
{j++;b--;}
m=i-j+n-1;
if(n
for(k=0;k
{a[k]=*c;
c++;}
a[k+1]='\0';
}
main()
{char s[81]; int n;
void NONO ();
printf("Enter a string:\n");gets(s);
printf("Enter n : ");scanf("%d",&n);
fun(s,n);
printf("The string after deleted:\n");puts(s);
NONO();
}
void NONO()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *in, *out ;
int i, n ; char s[81] ;
in = fopen("in.dat","r");
out = fopen("out.dat","w");
for(i = 0 ; i < 10 ; i++) {
fscanf(in, "%s", s);
fscanf(in, "%d", &n);
fun(s,n);
fprintf(out, "%s\n", s) ;
}
fclose(in);
fclose(out);
}
请各位高手帮我指点出错误的地方,或者有什么更简便的程序也请列出~谢谢了~