Problème avec char motSecret[] = ""; Dés lors Qu'il exède les 8 char

Le
clapannac Hors ligne
Voici le code après avoir corrigé assez d'erreur pour que toutes les étapes, jusqu’à l’exécutable, s’accomplissent sans erreur
Cependant, je n'obtiens toujours pas le résulta es conté.
Puisque après l’exécution de prog.exe (ci-dessous, après le code) je devrais y voir :

Longueur du mot secre : *********
Propose une lettre : o
Etat du mot secre : *
**
***
****
*****
******
*******
********
*********
*********
Process returned 0 (0x0) execution time : 7.109 s
Press any key to continue.

Or ce n'est pas le cas.
Néanmoins j'aimerai tout au tant comprendre ce qui encore m'échappe.
Toujours en vous remerciant pour l'aide précieuse que vous m'apportez.

###################### les fichiers source ###############
Main.c #
########

#include <stdio.h>
#include <stdlib.h>
#include "Proto.h"

int main()
{
char motSecret[] = "GRAMMAIRE";
char lettreTap;

printf("Longueur du mot secre : ");
Etoile_Secr(motSecret);

printf("Propose une lettre : ");
lettreTap = lireCaractere();

printf("Etat du mot secre : ");
printf("%s",Result_Trouve_Cache_Save(motSecret,lettreTap));

return 0;
}

###########
Fonction.c #
###########

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include "Proto.h"

char lireCaractere()
{
char caractere = 0;

caractere = getchar(); // On lit le premier caractère
caractere = toupper(caractere); // On met la lettre en majuscule si elle ne l'est pas déjà

// On lit les autres caractères mémorisés un à un jusqu'à l' (pour les effacer)
while (getchar() != '') ; // il y a un ";" car c'est une boucle minimaliste "Technique de programmeur"

return caractere; // On retourne le premier caractère qu'on a lu

}

void Etoile_Secr(char* Tab)
{
int i;

for(i=0;i<(int)strlen(Tab);i++)
{
printf("*");
}

printf("");
}

char* Result_Trouve_Cache_Save(char* Tab,char lettre)
{
int i;
char* copieTab = 0;

copieTab = malloc((int)strlen(Tab));
if (copieTab == 0)
{
exit(0);
}

for (i = 0 ; i < (int)strlen(Tab) ; i++)
{
if (lettre == Tab[i])
{
copieTab[i] = lettre;
printf("%s",copieTab);
}
else
{
copieTab[i] = '*';
printf("%s",copieTab);
}

}

return copieTab;
}

################ Headers ###############
Proto.h #
########

#ifndef _PROTO_
#define _PROTO_

char lireCaractere();
void Etoile_Secr(char* Tab);
char* Result_Trouve_Cache_Save(char* Tab,char lettre);

#endif

#####################prog.exe#####################

Longueur du mot secre : *********
Propose une lettre : o
Etat du mot secre : *=
**=
***
****ˆ=
*****=
******=
*******
********R_OF_PRO_
*********_OF_PRO_
*********_OF_PRO_
Process returned 0 (0x0) execution time : 7.109 s
Press any key to continue.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Publicité
Poster une réponse
Anonyme