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
| #include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
// Recuperer chaine par utilisateur
char chaine[100];
printf("donner la chaine : ");
scanf("%s",chaine);
size_t longueur = strlen(chaine);
// Decoupage
char* tab[100];
tab[0]=chaine;
char *buffer = NULL;
size_t taille = 2, debut = 0;
unsigned int nb_possibilites = 0;
printf ("\n\nChaine : [%s], longeur : [%lu]\n\n", chaine, longueur);
for(taille=2; taille < longueur ; taille++)
{
printf("Chaines de %lu caracteres\n", taille);
for(debut=0; debut+taille <= longueur; debut++)
{
nb_possibilites++;
buffer = calloc(taille + 1, 1);
strncpy (buffer, chaine+debut, taille);
tab[nb_possibilites] = buffer;
printf("tab[%u] est: %s \n", nb_possibilites, tab[nb_possibilites]);
}
putchar('\n');
}
// Affichage resulat
puts("RESULTATS");
size_t i;
for( i = 1; i <= nb_possibilites; i++)
{
printf("tab[%lu] : %s \n", i, tab[i]);
free(tab[i]);
}
return 0;
} |
Partager