压缩字符串,没有报错但为啥出不来结果啊
#include<stdio.h>
#define MAXLINE 80
void zip(char *p);
int main(void)
{
char line[MAXLINE];
printf("ENTER the string");
gets(line);
zip(line);
puts(line);
return 0;
}
void zip(char p)
{
//q是重组的字符串,原字符串p长度都变了,不能直接在原基础上改
char q=p;
int n;
while(*p!='\0');
{
n=1;
while(p==(p+n))
{
n++;
}
if(n>=10)
{
*q++=(n/10)+'0';
*q++=(n%10)+'0';
}
else if(n>1)
{
*q++=n+'0';
}
//把指针移动到下一个新字符,并打出那个字母,
q++=(p+n-1);
p=p+n;
}
*q='\0';
return;
}