計算字串中相同字元個數

2020-08-14 19:09:36
關於計算一個字串中存在的相同字串個數
  • 這個程式碼採用了比較簡單的思路做的,沒有儲存起來這是比較不好的一個地方,但是也比較容易讓人接受

思路:

  • 回圈每一個與最後一個比較,計算出個數,然後
  • 防止重複輸出多次,加一個回圈判斷前面是否已經計算過了
  • 如果計算過了就直接break跳出回圈
#include <stdio.h>
#include <string.h>


int main()
{
	char character[20];
	bzero(character,20);

	//從鍵盤獲取一個字串
	printf("請輸入需要計算器的字串:\n");
	scanf("%s",character);

	//定義兩個標籤,flag用於判斷前面是否已經計算過該字串,flag1用於計算個數,因爲要加上當前的字串,所以要從1開始
	int flag=0,flag1=1;
	//i代表從第一個開始和字串中的每一個對比是否一樣
	for(int i=0;i<strlen(character);i++)
	{
		//用於判斷前面是否已經計算過改字串了
		for(int k=0;k<i;k++)
		{
			//如果前面有一樣的字串證明該字串已經被計算過了
			if(character[i]==character[k])
			{
				//把flag置爲1,用於下面 下麪跳過這次回圈
				flag=1;
				//結束這個回圈,繼續下面 下麪的程式碼
				break;
			}
		}

		//如果flag爲真的時候(計算機中1即爲真)
		if(flag)
		{
			//把flag重新置爲0,用於下次回圈使用
			flag=0;
			//跳過這次回圈,不執行下面 下麪的程式碼
			continue;
		}

		//開始從i+1個字元開始和i比較
		for(int j=i+1;j<strlen(character);j++)
		{
			if(character[i]==character[j])
				//用於計算相同的個數
				flag1++;

		}

		//最後列印輸出一下
		printf("%c:%d\n",character[i],flag1);
		flag1=1;

	}
	return 0;
}