對字符串中的重複字符進行刪除並計數

#include "stdio.h"
#define NUM 10

int main() 
{
	char string[NUM];
	int count[255]={0}; 
	int i,j,k,num=1;
	gets(string);
	printf("未處理前期數組:%s\n",string);
	//對數組中的重複字符進行刪除 
	for(i=0;string[i]!='\0';i++)//對字符數組的數據進行逐個遍歷以及對比 
	{
		for(j=i+1;string[j]!='\0';)//固定一個字符數組中的某個字符,將其餘字符和它進行對比 
		{
			if(string[i]==string[j])//如果一樣,那進行多餘字符的刪除,實際上就是將其他字符替代前移 
			{
				for(k=j;string[k]!='\0';k++)
				{
					string[k]=string[k+1];
				}
				count[string[i]]++;/*這裏主要利用了ASCII碼將兩個數組聯繫起來了,string[i]對應一個ASCII碼,然後利用該ASCII碼作爲數組count入口對字符進行計數
									但是這裏只能計算有重複出現的字符個數*/ 
			}
			else
			{
			  	j++;
			}	
				
		}
	}
	
	printf("處理後期數組:%s\n",string);
	for(i=0;i<256;i++)
		if(count[i]!=0)
		printf("%c的數量是%d\n",i,count[i]+1);
	
}

發佈了27 篇原創文章 · 獲贊 85 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章