Probleme erreur
Résolu/Fermé
A voir également:
- Probleme erreur
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 5000 france tv - Forum iPhone
- Erreur de lecture reconnecté en 3s - Forum TV & Vidéo
8 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
24 août 2009 à 18:14
24 août 2009 à 18:14
Il te manque un else à la fin rechercheCaractere, on attend un résultat DANS TOUS LES CAS !
oui mais si je met un else je doit mettre quoi a l'interieur de else je ne vais pas mettre un return NULL je l'ai deja mit dans le else if sa n'a aucune utilitée
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
24 août 2009 à 18:50
24 août 2009 à 18:50
J'ai compris ce que tu as voulu faire, mais ce n'étais pas très propre...
char* rechercheCaractere(const char* chaine, int caractereARechercher) { int i; for (i=0; chaine[i] != '\0'; i++) { if (chaine[i] == caractereARechercher) return (char*) chaine; // es-tu sûr que ce soit chaine ici ? } return NULL; // dans le cas où le caractère n'apparaisse jamais }
ben en faite moi j'ai un doute je crois que je doit retourner chaine[i] mais dans le prototype il dise qu'on doit retourner une pointeur et un gars ma dit que chaine est un pointeur alors que chaine[i] n'est pas un pointeur donc je retourne chaine je vois ce ue je doit retourner d'autre
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
24 août 2009 à 19:35
24 août 2009 à 19:35
Même si ça peut paraître étrange, tu peux retourner un pointeur sur un caractère.
Ça te permet de savoir où est situé ce caractère en mémoire, et d'afficher tous les caractères qui suivent...
En réalité chaine pointe sur chaine[0], donc tu peux faire revenir le pointeur de chaine[i] en utilisant chaine+i.
Remarque : chaine étant déclaré constante tu devras encore utiliser (char*)
Ainsi avec return (char*) chaine+i; tu obtiendras "je suis Anthony".
Ça te permet de savoir où est situé ce caractère en mémoire, et d'afficher tous les caractères qui suivent...
En réalité chaine pointe sur chaine[0], donc tu peux faire revenir le pointeur de chaine[i] en utilisant chaine+i.
Remarque : chaine étant déclaré constante tu devras encore utiliser (char*)
Ainsi avec return (char*) chaine+i; tu obtiendras "je suis Anthony".
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
24 août 2009 à 19:56
24 août 2009 à 19:56
chaine[i] est un caractère, chaine+i est un pointeur sur le caractère
en fait tu as : chaine[i] = *(chaine+i)
en fait tu as : chaine[i] = *(chaine+i)