我想提高我在c中的技能,當涉及到了解計算字符串中字母出現的不同方法時,我有點困惑函數,對於如何改進代碼或者計算函數字符串中出現字母的次數的新方法,能夠獲得不同的意見。CountChars數組字符串循環函數字母出現
有什麼建議嗎?
#include <stdio.h>
int countingCharacters(char *message, int size, char charToBeCounted);
int main() {
char arrMess[13] = { "hejsanSvejsan" };
char charsToBeCounted = 'a';
for (int i = 'a'; i <= 'z'; i++) {
printf("%c, %d:\n", charsToBeCounted, countingCharacters(arrMess, 13, charsToBeCounted));
charsToBeCounted++;
}
getchar();
return 0;
}
int countingCharacters(char *message, int size, char charToBeCounted) {
int counter = 0;
int i = 0;
while (i < size)
{
if (message[i] == charToBeCounted)
counter++;
i++;
}
return counter;
}
也許[代碼審查](https://codereview.stackexchange.com/)將是正確的地方問這個問題。 –
'charsToBeCounted'是不必要的,我認爲它會更清晰和更快,儘管可以忽略這麼簡單地使'i'變成字符。除了不留出空餘空間來容納終結者之外,硬編碼的大小將使代碼難以改變。我猜這個問題主要是問,有沒有更快的方法來計算字符發生的次數,不幸的是,在複雜性方面,沒有。 'int i ='a';我<='z';'是好的,但是很迂腐,我不認爲'a'到'z'的十進制值必須是按順序連續的,唯一真正的解決方案是使用一個數組或者圖書館。 – George