Comptage du nombre d'occurrences d'un caractère dans une chaîne de caractères en C

J'ai la chaîne str

char *str = "100.10b.100.100";

Je veux compter les occurrences de '.' dans str, de préférence un one-liner. (Si possible, pas de boucles)

Mon approche serait la norme strchr:

  int i = 0;
  char *pch=strchr(str,'.');
  while (pch!=NULL) {
    i++;
    pch=strchr(pch+1,'.');
  }
  • Pour le mantra sac - qu'avez-vous essayé? ce qui ne fonctionne pas? .......
  • J'ai posté mon approche.
  • Comme tvanfosson souligné, vous pouvez le faire avec la récursivité, et c'est peut-être ce que le professeur voulait vous voir faire, mais c'est complètement idiot de le faire. Il en résulte d'un débordement de pile assez grande pour les chaînes... et pas le bon type de SORTE que votre travail à la maison pour vous, le mauvais genre! 😉
InformationsquelleAutor Mike | 2010-11-20