Date création : 12-01-2008 11:13:33 Date de la dernière modification : 12-01-2008 13:10:43
 Vous êtes dans : Langage C Astuces / Récursivité - Exercices
Enoncé :
Calculer la longueur d'une chaîne de caractères.
Solution :
#include<stdio.h>
#define MAX 255
int strlen_recursif (char *s);
int main ()
{
char s[MAX];
printf ("Entrez une chaine de caractères :");
fgets (s, MAX, stdin);
printf ("%d\n", strlen_recursif (s));
return 0;
}
int strlen_recursif (char *s){
if (*s == '\0')
return 0;
return 1 + strlen_recursif (s + 1);
}
|
Explication :
Nous utililserons le pointeur s qui est l'adresse du 1er élément de la chaîne de caractères. Dans l'appel récursif nous incrémentons le pointeur, donc nous sommes au 2ème élément de la chaîne, et ainsi de suite.
Si le pointeur contient '\0', nous sommes à la fin de la chaîne et nous ne comptons pas le caractère '\0', sinon nous ajoutons 1 (pour un caractère rencontré).
|