c语言程序错了怎么检查,这个C语言程序哪错了?

该程序旨在用C语言编写一个函数,功能是检查输入字符串尾部的星号(*)数量,并在数量超过指定值(n)时删除多余的星号。程序通过遍历字符串来计数星号,并进行必要的删除操作,同时要求不使用C语言内置的字符串函数。在主函数中,用户可以输入字符串和n值,然后输出处理后的字符串。
摘要由CSDN通过智能技术生成

题目如下:假定输入的字符串中只包含字母和*号。请编写函数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);

}

请各位高手帮我指点出错误的地方,或者有什么更简便的程序也请列出~谢谢了~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值