J'essaie d'avancer mes compétences dans c, je suis un peu confus quand il s'agit de comprendre les différentes façons de calculer l'occurrence des lettres dans une chaîne avec fonction, serait être génial de recevoir différents points de vue sur la façon dont je pourrais améliorer le code ou une nouvelle façon de compter combien de fois une lettre se produit dans une chaîne avec une fonction.CountChars tableau chaîne boucle fonction lettre occurrence
Un conseil?
#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;
}
Peut-être [Code Review] (https://codereview.stackexchange.com/) serait le bon endroit pour poser cette question. –
'charsToBeCounted' est inutile, je pense que ce serait plus clair et plus rapide, quoique négligeable, pour simplement faire un caractère. En plus de ne pas laisser de place à un terminateur nul, le codage dur de la taille rendra le code plus difficile à changer. Je suppose que la question est surtout de savoir s'il existe un moyen plus rapide de compter le nombre de fois qu'un char se produit, malheureusement en termes de complexité, il n'y en a pas. 'int i = 'a'; je <= 'z'; 'est bon, mais pour être pédant, je ne pense pas que les valeurs décimales de 'a' à 'z' soient en ordre et contiguës, la seule vraie solution est d'utiliser un tableau ou bibliothèque. – George