mon problème n'est pas de faire la fonction qui à partir d'un entier construit sa représentation en chaine de caractère.
C'est pourtant ce que tu m'as décris dans ton précédent post !
ce que j'ai compris de cette question est que l'entrée est deux entiers représentés sous forme des chaines de caractères.alors là,je dois lire l'entrée et la convertir en entiers et puis faire l'instruction de somme
Surtout pas ! L'exercice qu'on te demande, s'appelle une
bistromathique. C'est une technique qui permet de gérer des nombres d'une taille très grande (taille qui ne rentrerait pas dans un entier). Si tu convertis en entier, tu perds tout l'intérêt !
Pour additionner deux chaînes de caractères représentant des entiers, il va falloir que tu te souviennes de tes cours de primaires. Quand tu étais petit, tu posais sûrement tes additions sur papiers. Tu partais de la droite, tu additionnais les chiffres, un à un, et tu gardais une retenu, si nécessaire.
Et bien pour réaliser cet exercice, c'est le même principe. Tu pars vers la fin de tes chaînes de caractères, et tu additionnes les éléments un à un, en gardant une retenue, si nécessaire. Le résultat tiendra dans un tableau, dont la taille est forcément comprise entre (taille de la plus grande chaîne) et (taille de la plus grande chaîne + 1).
Ex:
"1234" + "859"
Etape 1:
"1234" => premier tableau (taille 4)
"859" => deuxième tableau (taille 3)
-------
"....." => tableau de résultat (taille 5)
ret = 0 => retenu
Etape 2:
tab1[3] + tab2[2] + ret = 4 + 9 + 0 = 13, soit 3 retient 1
"1234" => premier tableau (taille 4)
"859" => deuxième tableau (taille 3)
-------
"....3" => tableau de résultat (taille 5)
ret = 1 => retenu
Etape 3:
tab1[2] + tab2[1] + ret = 3 + 5 + 1 = 9, soit 9 retient 0
"1234" => premier tableau (taille 4)
"859" => deuxième tableau (taille 3)
-------
"...93" => tableau de résultat (taille 5)
ret = 0 => retenu
Etape 4:
tab1[1] + tab2[0] + ret = 8 + 2 + 0 = 10, soit 0 retient 1
"1234" => premier tableau (taille 4)
"859" => deuxième tableau (taille 3)
-------
"..093" => tableau de résultat (taille 5)
ret = 1 => retenu
Etape 5:
Ici on est arrivé au début du tableau 2. Donc:
On change la méthode qui devient:
tab1[0] + ret = 1 + 1 = 2, soit 2 retient 0
"1234" => premier tableau (taille 4)
"859" => deuxième tableau (taille 3)
-------
".2093" => tableau de résultat (taille 5)
ret = 0 => retenu
Etape 6:
Ici on a terminé. On vérifie juste qu'il n'y ait pas de case inutilisé dans le tableau résultat.
Ici, on voit que c'est le cas, dont on décale toute les caractères vers la gauche:
".2093" => "2093."
Enfin, on peut au choix:
- Raccourcir la chaîne de caractère de 1, via realloc
- Considérer qu'une case de gaché ce n'est pas bien grave, et juste mettre un 0 terminal à la case 4 (à la place du .)
Bonne chance !