FONCTION STRCAT [Résolu]

Signaler
Messages postés
5
Date d'inscription
mercredi 17 juin 2020
Statut
Membre
Dernière intervention
21 août 2020
-
Messages postés
5
Date d'inscription
mercredi 17 juin 2020
Statut
Membre
Dernière intervention
21 août 2020
-
Bonjour,
Je débute dans la programmation du langage C et je suis rendu à l’apprentissage des chaînes de caractères str...
Donc pour m’entraîner je conçois des petites fonction qui n'ont pas vraiment de sens.
Et la j'ai un problème avec la fonction strcat qui permet je crois de concaténer une chaîne dans une autre et je n'y arrive pas.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int findNum(char* tabEntCalc, char* outEntCalc, int result, int numOfNum);


int main(int argc, char const* argv[]) {
 char tabEntCalc[256] = { 0 }; // je met par exempe 17 + 13
 char outEntCalc[256] = { 0 };
 int numOfNum = 0;
 int result = 0;
 findNum(tabEntCalc, outEntCalc, result, numOfNum);
 return 0;
}

int findNum(char* tabEntCalc, char* outEntCalc, int result, int numOfNum) {
 gets(tabEntCalc);
 numOfNum = strlen(tabEntCalc);
 for (int i = 0; i < numOfNum; ++i) {
  if (tabEntCalc[i] =='0' || tabEntCalc[i] == '1' || tabEntCalc[i] == '2' || tabEntCalc[i] == '3' || tabEntCalc[i] == '4' || tabEntCalc[i] == '5' || tabEntCalc[i] == '6' || tabEntCalc[i] == '7' || tabEntCalc[i] == '8' || tabEntCalc[i] == '9') {
   printf("0\n");
   //Je veux ajouter un 0 quand il y un chiffre
   strcat(outEntCalc, "0");
  }
  else {
   printf("1\n");
   //Je veux ajouter un 1 quand il y un chiffre
   strcat(outEntCalc, "1");
  }

 }
 printf("Le calcul         : %s\n", tabEntCalc);
 printf("Le resultat       : %d\n", result);
 printf("Sortie tabEntCalc : %d\n", outEntCalc);//pour afficher le résultat de strcat
 printf("Votre calcul fait %d caracteres\n", strlen(tabEntCalc));
}



Je veux ajouter un 0 quand il y un chiffre et ajouter un 1 quand il y a autre chose.

Le problème c'est que quand je test il me répond ça :

17+13
0
0
1
0
0
Le calcul : 17+13
Le resultat : 0
Sortie tabEntCalc : 6421784 <--------(comme si elle n'était pas initialisée ?)
Votre calcul fait 5 caracteres

1 réponse

Messages postés
13405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 décembre 2020
750
bonjour, examine bien ce que tu fais en ligne 35. au besoin, compare avec la ligne 33.
Messages postés
5
Date d'inscription
mercredi 17 juin 2020
Statut
Membre
Dernière intervention
21 août 2020

Merci pour ta réponse.
Le pire c'est que j'avais fais la même erreur 1 jour plus tôt. x)