C语言编程不知道写的对不对,请高人指教一下!万分感谢!

来源:百度知道 编辑:UC知道 时间:2024/05/18 00:22:51
要把****A*BC*DEF*G*******
变成A*BC*DEF*G*******
我的中心算法这样写对不对啊?
for(i=0;a[i]!='\0';i++)
{if(a[i]=='*')
j++;
else if(a[i+1]!='*')
break;
}
for(i=j;a[i]!='\0';i++)
b[n++]=a[i];
如果不对应该怎么写啊?(麻烦容易理解一点的啊,我不是学计算机的,谢谢了!)

1.如果是把数组a前面的*去掉,然后保存到数组b
那么只要修改你代码里的小错误就可以了
修改后代码:
for(i=0;a[i]!='\0';i++)
{if(a[i]=='*')
j++;
else
break;
}
for(i=j;a[i]!='\0';i++)
b[n++]=a[i];
注意一定要改,
这里有错误,
而不是jeanhonk说的没问题。

2.如果是把数组a前面的*去掉,最后的字符串还保存在a里面,那么用下面的程序:
#include "stdio.h"
void fun(char *a)
{
int i,j=0,k;(首先给数赋初值)

while(a[j]=='*')
j++;(做一个循环让到不是*的数的时候停止)

for(i=0;a[j];i++)
a[i]=a[j++];
a[i]='\0';
}
main()
{ char *a="******adfjksafj***";
printf("\n");
puts(a);
fun(a);
puts(a);
}

悉雨辰寂

没问题。。不过

{if(a[i]=='*')
j++;
else break; 这里直接break 就好了。