Fct recursive pour convertir "123" en ch
Résolu/Fermé
bibliomax
Messages postés
30
Date d'inscription
mercredi 15 octobre 2008
Statut
Membre
Dernière intervention
23 janvier 2010
-
23 janv. 2010 à 01:11
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 23 janv. 2010 à 21:28
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 23 janv. 2010 à 21:28
A voir également:
- Fct recursive pour convertir "123" en ch
- Convertir youtube en mp3 avec audacity - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- 123 solitaire - Télécharger - Cartes
- Convertir epub en kindle - Guide
- Convertir youtube en mp3 forum ✓ - Forum Logiciels
4 réponses
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
23 janv. 2010 à 19:41
23 janv. 2010 à 19:41
Je ne réponds pas exactement à la question, car je préfère ma question ;-)
Bonne continuation.
#include <string.h> #include <stdio.h> #include <stdlib.h> int retourne(const char* chn) { char* str = strdup(chn); int i, result, lng = strlen(str); for (i=0; i<(lng)/2; i++) { char tmp = str[i]; str[i] = str[lng-1-i]; str[lng-1-i] = tmp; } result = atoi(str); free(str); return result; } int main() { char* chaine = "12234"; printf("\"%s\" -> %d\n", chaine, retourne(chaine)); return EXIT_SUCCESS; }Je te laisse donc adapter ma réponse à la tienne, Etienne ! Il est des nô-ôtres, il a codé son prog comme les au-autres ;-)
Bonne continuation.
bibliomax
Messages postés
30
Date d'inscription
mercredi 15 octobre 2008
Statut
Membre
Dernière intervention
23 janvier 2010
3
23 janv. 2010 à 20:04
23 janv. 2010 à 20:04
merci de votre réponse mais c'est pas ça ce que je voulais parce que avec la méthode classique c'est facile
en plus la fonction retourne un entier et pas une chaine de caractères mais comme j'ai dit avant ça c'est à la porté de tout le monde ... les choses se complique si la fonction devrait être récursive il faut récupérer le dernier caractère le multiplier par 10 et puis l'additionner avec l'avant dernier et le processus continu
en plus la fonction retourne un entier et pas une chaine de caractères mais comme j'ai dit avant ça c'est à la porté de tout le monde ... les choses se complique si la fonction devrait être récursive il faut récupérer le dernier caractère le multiplier par 10 et puis l'additionner avec l'avant dernier et le processus continu
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
23 janv. 2010 à 21:28
23 janv. 2010 à 21:28
Ah, effectivement, je n'avais pas compris la question et je dois bien avouer que ce n'est qu'à la lecture de la réponse de Fiddy que je l'ai comprise. Je ne pensais pas en être si éloigné.
Il ne te reste plus qu'à mettre le post en 'résolu'.
Bonne soirée.
Il ne te reste plus qu'à mettre le post en 'résolu'.
Bonne soirée.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
23 janv. 2010 à 21:03
23 janv. 2010 à 21:03
La méthode récursive n'est pas plus difficile que la méthode itérative...
Elle est même plus simple en fait.
Voici un exemple simple :
Elle est même plus simple en fait.
Voici un exemple simple :
#include <stdio.h> #include <string.h> int toInt(const char *s, const int nb) { if (nb>1) { return s[strlen(s)-nb]-'0'+10*toInt(s,nb-1); } else{ return s[strlen(s)-1]-'0'; } } int main(void) { char *s="12345"; printf("%d\n",toInt(s,strlen(s))); return 0; }
bibliomax
Messages postés
30
Date d'inscription
mercredi 15 octobre 2008
Statut
Membre
Dernière intervention
23 janvier 2010
3
23 janv. 2010 à 21:09
23 janv. 2010 à 21:09
merci beaucoup pour la solution c'est exactement ce que je voulais