编写函数fun,其功能是将字符串中前导 * 号全部删除,中间和尾部的 * 不删除。我写的fun函数错在哪,求教

#include<stdio.h>voidfun(char*a){inti,j=0,n=0;for(i=0;a[i];i++)if(a[i]=='*')n++;for(i... #include <stdio.h> void fun( char *a ) { int i,j=0,n=0; for(i=0;a[i];i++) if(a[i]=='*') n++; for(i=n;a[i];i++) a[j++]=a[i]; a[j]='\0'; } 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) ; } 展开
 我来答
兮兮妞UXKR
2014-06-22 · 超过64用户采纳过TA的回答
知道答主
回答量:132
采纳率:50%
帮助的人:61万
展开全部
中间的那个for循环出错了哦 ,n++会一直加下去,你要判断,当出现第一个不是'*'的符号时就应该退出,所以在第一个for循环那加一个else break;这样就是正确的,还有每个for循环最好加一对{ },养成良好的编程习惯。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式