用c语言编写程序删除字符串中间的'*'号

来源:百度知道 编辑:UC知道 时间:2024/06/08 02:11:22
1.如字符串为:*****ABC*****SHDFN****
运行后结果为:*****ABCSHDFN****
2.不能使用C库函数

已通过编译,而且除了printf()和scanf()之外,什么库函数都没用。
void main(void)
{ char *str,i;
do
{ printf("Please input:\n");
scanf("%s",str);
for(i=0;str[i]!='\0';i++);
}while(i==0);
i=fun(str,i-1); /*自定义的函数,负责删除'*'*/
printf("%s\n",str+i);/*从第i位(即第一个不是'*'的那一位)开始显示*/
}
int fun(char *str,int j)
{ int i,f1=0,f2=0; /*f1与f2是标志变量,当他俩都为1时,则以删除完了*/
for(i=0;i!=j&&f1*f2==0;)
{ if(str[i]=='*') i++; /*如果是'*',下标后移,否则将f1置1*/
else f1=1;
if(str[j]=='*') j--;/*如果是'*',下标前移.否则f2置1,并将后一位置'\0'*/
else { str[j+1]='\0';f2=1; }
}
return i;
}

给,已经编译运行确认:
#include<conio.h>
#include<stdio.h>

#define N 50 //定义字符串最长为50个字符

int main()
{
int length=0,head,tail;
int i,j;
char str[N]={NULL};
char temp;

printf