C++编写一个字符串压缩函数,使字符串中重复出现的字符压缩为一个,并输出删除字符的个数

我写了一个,就是无法输出。
#include<stdio.h>
int i,count;
int main()
{char s[100];
int i;
gets(s);
for(i=0;s[i]!='\0';i++);
i--;
compress(s[i]);
puts(s);
printf("%d",count);
return 0;
}
int compress(char s[])
{
int j,count=0;
for(j=1;j<i-count;j++){
if(s[j]=s[j-1]){
if(j+1==i-count-1) s[j+1]='\0';
else {s[j]=s[j+1];count++;}}
else continue;}
return s[i-count];

}

#include<stdio.h>
int compress(char s[])
{ int i,j,k,n,a[127]= {0};
  for(i=0; s[i]; i++)a[s[i]]++;
  n=i;
  for(i=0; s[i]; i++)
    {if(a[s[i]]>1)
      for(k=i,j=i+1; s[k]; j++)
    if(s[i]!=s[j])s[++k]=s[j];
    }
  return n-i;
}
int main()
{ char s[100];
  int i,count;
  gets(s);
  count=compress(s);
  puts(s);
  printf("删除字符:%d个\n",count);
  return 0;
}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网