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
| int compteurDeMots (char* chaine){
int compteur=1;
for (int i=1;i<strlen(chaine);i++){
if (estSeparateur(chaine[i])){
compteur+=1;
}
}
return compteur;
}
void CORR_decomposer (char* chaine, int compteur, char*** tableauDeMots ,int* PositionDansChaine[]){
/* On rentre une chaine, et le nombre de mot dans la chaine, on ressort un tableau de chaine ainsi
que la position du début de chaque mot dans la chaine*/
int i,j;
char* res;
**tableauDeMots=malloc(sizeof(int) * compteur);
*PositionDansChaine=malloc(sizeof(int)*compteur);
res=NULL;
j=0; /*marque le début d'un mot*/
for (i=1;i<strlen(chaine);i++){
/* On commence le compteur à 1, le premier caractère ne pouvant être un séparateur*/
if (estSeparateur(chaine[i])){
res=sous_string(chaine,j,i-1);/*on selectionne le mot que l'on a trouvé dans la chaine, i-1 pour ne pas prendre
en compte le séparateur*/
*tableauDeMots[j]=res;
PositionDansChaine[j]=&i;
j=i+1;
}
}
}
int main() {
char** tabDeMots;
int nbreDeMots;
//int* positions;
char* String_a_decomposer = "String a decomposer";
int nbreMot = compteurDeMots(String_a_decomposer);
int *positions;
CORR_decomposer(String_a_decomposer,nbreMot,&tabDeMots,&positions);
int bool1=strcmp(tabDeMots[1],"a");
int bool2=(nbreDeMots==3);
int bool3=(positions[1]==7);
printf("%d",bool1);
return 0;
} |
Partager