Ich versuche, meine Fähigkeiten in c, ich bin ein bisschen verwirrt, wenn es um verschiedene Möglichkeiten, das Auftreten von Buchstaben in einer Zeichenfolge mit einer Funktion Funktion zu berechnen kommt, würde Es ist großartig, verschiedene Ansichten zu erhalten, wie ich den Code verbessern könnte, oder eine neue Art zu zählen, wie oft ein Buchstabe in einer Zeichenkette mit einer Funktion auftritt.CountChars Array String Schleife Funktion Brief Vorkommen
Irgendwelche Ratschläge?
#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;
}
Vielleicht [Code Review] (https://codereview.stackexchange.com/) wäre der richtige Ort, um diese Frage zu stellen. –
'charsToBeCounted' ist unnötig, ich denke, es wäre klarer und schneller, obwohl es vernachlässigbar ist, um' i' einfach ein char zu machen. Abgesehen davon, dass Sie keinen Platz für einen Null-Terminator haben, wird eine harte Codierung der Größe den Code schwieriger zu ändern machen. Ich vermute, die Frage stellt sich meistens, gibt es einen schnelleren Weg, um die Anzahl der Male zu zählen, die ein Zeichen auftritt, leider in Bezug auf die Komplexität, gibt es nicht. 'int i = 'a'; i <= 'z'; 'ist gut, aber um pedantisch zu sein, glaube ich nicht, dass die Dezimalwerte von 'a' bis 'z' in der Reihenfolge und zusammenhängend sein müssen, die einzige wirkliche Lösung ist die Verwendung eines Arrays oder Bibliothek. – George