小程序(十五)删除一个字符串中出现最少的字符

来源:互联网 发布:java从键盘输入字符串 编辑:程序博客网 时间:2024/06/05 03:27

将一个字符串中出现次数最少的字符删除,这个字符串只有小写字母,不考虑空格。

#include<stdio.h>#include<stdlib.h>#include<string.h>char *delChar(char *s,int iLen){   char* p = (char*)malloc(sizeof(char)*iLen);  int pos,i,j;  int num[26] = {0};//存储每个字符出现的次数  for(i=0;i<iLen;i++)  {  pos = s[i]-'a';//每个字符在数组num中的位置      num[pos]++;  }  int k=0;  while(num[k]==0)//找到一个不为数的数 k++;  int index = k;  int min = num[k];//出现次数最小的数的出现次数  for(i=0;i<iLen;i++)  {  if(min > num[i] && num[i]!=0)  {    index = i;  min = num[i];  }  }    j=0;  for(i=0;i<iLen;i++)  if( num[(s[i]-'a')] !=min)//如果出现次数不等于最小,就将它输出  p[j++] = s[i];        p[j] = '\0';    return p;}int main(){  char *array = "aabbcffeedeffgghi";  int iLen = strlen(array);  char* result = (char*)malloc(sizeof(char)*iLen);  result = delChar(array,iLen);  printf("%s\n",result);  return 0;}


原创粉丝点击