删除字符串中的*号
假定输入的字符串中只包括字母和*号。编写函数fun,它的功能是:除了字符串前导的*号外,将串中的其它*号全部删除。在编写函数时,不得使用c语言提供的字符串函数。下面是我写的一段代码,一直查不到错在哪里。
#include<stdio.h>
void fun(char *a);
int main(void)
{
char str[81];
printf("Enter a string.\n");
gets(str);
fun(str);
printf("The string after delete.\n");
puts(str);
return 0;
}
void fun(char *a)
{
int i,j,n = 0;
while(a[n])
{
n++;
}
n--;
i = 0;
while(a[i] == '*')
{
i++;
}
for( j = 1; i <= n; i++)
{
if(a[i] == '*')
{
j++;
a[i] = a[i + j];
}
if(a[i] == '\0')
{
break;
}
}
}
谢谢。
[ 本帖最后由 曼珠沙华 于 2009-8-16 13:15 编辑 ]