FONCTION STRCAT

Résolu/Fermé
Messages postés
28
Date d'inscription
mercredi 17 juin 2020
Statut
Membre
Dernière intervention
4 juillet 2021
-
Messages postés
28
Date d'inscription
mercredi 17 juin 2020
Statut
Membre
Dernière intervention
4 juillet 2021
-
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
18318
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 janvier 2022
1 002
bonjour, examine bien ce que tu fais en ligne 35. au besoin, compare avec la ligne 33.
Messages postés
28
Date d'inscription
mercredi 17 juin 2020
Statut
Membre
Dernière intervention
4 juillet 2021

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