删除多余空格,新手求助!!!
各位高手,本人编了一段程序,企图实现将输入的一段话之间的多余的空格删除,单词之间只保留一个空格,但是想了好几天,还是有点问题,程序如下:
# include <stdio.h>
# include <string.h>
void del_space(char *p);
void mygets(char *p);
void myputs(char *p);
void main()
{
char string[50];char *p;
p=string;
printf("本程序负责完成将输入的多余的空格删除\n");
printf("请输入一段话\n");
mygets(p);
printf("您输入的字符串是\n");
myputs(string);
printf("OK,剩下的是就交给我了:\n");
del_space(string);
printf("删除多余空格后的字符串为:\n");
myputs(p);
}
void del_space(char *p)
{
int i,j;
for(i=0;i<strlen(p)-1;i++)
{
if(*(p+i)==' ' && *(p+i+1)==' ')
for(j=i;j<strlen(p)-1;j++)
*(p+j)=*(p+j+1);
}
*(p+i)='\n';
}
void mygets(char *p)
{
while(*p=getchar())
if(*p!='\n')
p++;
else
break;
}
void myputs(char *p)
{
while(putchar(*p))
if(*p!='\n')
p++;
else
break;
}
请各位高手百忙之中抽空看看,不吝赐教,在下感激不尽