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

2025-02-23 08:07:20
推荐回答(1个)
回答1:

#include
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;
}