Langage c

Fermé
xaviermfx Messages postés 2 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 22 mai 2010 - 22 mai 2010 à 09:58
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 - 22 mai 2010 à 11:09
salut les bao, je voudrai une fonction qui permet de découper une chaîne de caractères en n chaîne de caractères de même tailles... svp j'ai besoin de votre aide et merci d'avance

1 réponse

chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
22 mai 2010 à 11:09
Salut,
si tu veux ne pas les stocker...tu peux faire un truc du style...
void decoupe(unsigned char nbr,char*chain)
{
    unsigned char lenght=strlen(chain);
    char* fin=chain+lenght;
    while(chain<fin)
    {
        if (chain+nbr<fin)
        {
            printf("%.*s\n",nbr,chain);
            chain+=nbr;

        }
        else
        {
            printf("%.*s\n",fin-chain,chain);
            chain=fin;
        }
    }
}

si faut les stocker..ben tu peux utiliser les listes chainées....
typedef struct listeChaine
{
    char*chaine;
    struct listeChaine*suivant;
}liste;
liste* decoupage(unsigned char nbr,char*chain)
{
    unsigned char lenght=strlen(chain);
    char* fin=chain+lenght;
    liste* l=(liste*)malloc(sizeof(liste));
    liste *li=l;
    while(chain<fin)
    {
        char*ch=(char*)malloc(sizeof(char)*nbr);
        memset(ch,0,sizeof(ch));

        if (chain+nbr<fin)
        {
            memcpy(ch,chain,nbr);
            chain+=nbr;

        }
        else
        {
            memcpy(ch,chain,fin-chain);
            chain=fin;
        }
        l->chaine=ch;
        liste* newL=(liste*)malloc(sizeof(liste));
        newL->suivant=NULL;
        l->suivant=newL;
        l=l->suivant;

    }
    return li;
}

@+
0