1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| #include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* Déclaration du prototypes des fonctions : */
char * ajout_chaine(char *attribut);
int compare_chaine(char * premiere, char * seconde);
int main(void)
{
char *premiere = NULL;
char *seconde = NULL;
premiere = ajout_chaine("");//Ajout du premier champs vide nécessaire pour pouvoir imbriquer les autres chaines et éviter le warning
seconde = ajout_chaine("");
char toto[5] = "toto";
toto[5] = '\0';
premiere = ajout_chaine(strcat(premiere,toto));
char basket[7] = "basket";
basket[7] = '\0';
premiere = ajout_chaine(strcat(premiere,basket));
char tshirt[7] = "tshirt";
tshirt[7] = '\0';
premiere = ajout_chaine(strcat(premiere,tshirt));
printf("Premiere -> %s\n", premiere);
char titi[5] = "";
titi[5] = '\0';
seconde = ajout_chaine(strcat(seconde,titi));
char football[9] = "";
football[9] = '\0';
seconde = ajout_chaine(strcat(seconde,football));
char lalal[7] = "";
lalal[7] = '\0';
seconde = ajout_chaine(strcat(seconde,lalal));
char llololo[7] = "";
llololo[7] = '\0';
seconde = ajout_chaine(strcat(seconde,llololo));
printf("seconde -> %s\n", seconde);
printf("premiere AVANT -> [ %s ]\n", premiere);
printf(" \nResultat -> %d \n", compare_chaine(premiere, seconde));
printf("premiere APRES -> [ %s ]\n Modification de ma chaine Problème ...\n", premiere);
return 0;
} /* Fin main() */
char * ajout_chaine(char *attribut)
{
char *maChaine = NULL;
maChaine = realloc(maChaine, 100);
strcpy(maChaine,attribut);
//printf("maChaine -> [ %s ]\n\nattribut -> [ %s ]\n\n",maChaine, attribut);
strcat(maChaine,",");
return maChaine;
} /*Fin Ajout_chaine */
int compare_chaine(char * premiere, char * seconde) // Si c'est la premiere et premiere = seconde on retourne 1 sinon on retourne 0
{
int i = 0, n = 0;
char caractereSpecial[1] = ",";
char *recup;
recup = strtok(premiere, caractereSpecial);
while( recup != NULL)
{
//printf("premiere -> [ %s ]\n", recup);
recup = strtok(NULL, caractereSpecial);
i++;
}
recup = strtok(seconde, caractereSpecial);
while( recup != NULL)
{
//printf("seconde -> [ %s ]\n", recup);
recup = strtok(NULL, caractereSpecial);
n++;
}
printf(" premiere -> [ %d ]\nseconde -> [ %d ]\n", i, n);
if(i<n)
{
return 1;
}
else
{
return 0;
}
} /* Fin compare_chaine */ |
Partager