我想提高我在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