删除字符串之间的*
比如输入abc**
会输出abc*
```c
#include<stdio.h>
#include<string.h>
#define N 20
void fun(char *h,char *p,char *str);
int main()
{
char str[N],*h,*p;
printf("input the string:\n");
gets(str);
h=p=str;//用字符指针h、p指向str
while(*p){//非零判断
p++;
p--;//将指针p定位到字符串的最后一个字符 (怎么做到的?
}
while(*h=='*')
*h++;
while(*p=='*')
*p--;
fun(h,p,str);
puts(str);
return 0;
}
void fun(char *h,char *p,char *str)
{
int i,j;
for(i=0,j=0;&h[i]<p;i++)//删除h和p之间的所有*
{ if(h[i]!='*'){
h[j++]=h[i];
}
}
/*将指针p至字符串尾部的所有字符前移*/
for(i=0; p[i]; i++,j++)//这里的p[i]是什么条件
h[j]=p[i];
h[j]='\0'; /*在字符串尾部添加结束标志*/
}
```
while(*p){//非零判断
p++;
p--;//将指针p定位到字符串的最后一个字符 (怎么做到的?
}
for(i=0; p[i]; i++,j++)//这里的p[i]是什么条件
谢谢大家!