計算字串中字元出現的次數
阿新 • • 發佈:2021-01-05
技術標籤:C/C++語言 基礎字串演算法
Description
輸出字元出現的次數,並按照字母順序表排序輸出
輸入
ddkafadf
輸出
a2d3f2k1
分析
ascii表中共有128個元素,其中包括了a-z,我們可以初始化一個長為128的陣列,用來表示所有元素個數都為0,然後遍歷要計算的字串,遍歷字串的內容即為初始化陣列的下標。以下面程式碼為例,若buffer的第一個字元是’a’ 那麼 'a’對應的ascii碼就為bucket的下標,並將下標所對應的內容+1,以達到計數的目的
#include <stdio.h>
int main() {
char buffer[ 100] = "";
gets(buffer);
int bucket[128] = { 0 }; //ascii表中共有128個元素
for (int i = 0; buffer[i] != '\0'; i++) {
bucket[buffer[i]]++;
}
for (int i = 0; i < 128; i++) {
if (bucket[i] > 0) {
printf("%c%d", i, bucket[i]);
}
}
return 0;
}