Partage
  • Partager sur Facebook
  • Partager sur Twitter

Effacer la fin d'une chaine

Sujet résolu
    17 mai 2007 à 18:06:31

    Bonjour,
    J'ai par exemple ce texte : "Nombre de personnes actuellement sur NomDuSite le xx/xx/xxxx à xx:xx" .

    J'aimerai mettre dans une chaine "site" -> NomDuSite puis dans une chaine "date" -> xx/xx/xxxx à xx:xx .
    Le texte, quand à lui, se trouve déjà dans une chaine "texte".

    je commence par aller dans la chaine "date" et je garde que xx/xx/xxxx à xx:xx :

    date[0] = strstr (texte[0], "le");
            i = 0;
            for(i=0; i<3; i++)
            {
                date[i] = ' ';
            }


       xx/xx/xxxx à xx:xx


    Puis jevais dans la chaine "site" et je supprime ce qui se trouve avant NomDuSite :

    site[0] = strstr (texte[0], "sur");
            i = 0;
            for(i=0; i<4; i++)
            {
                site[i] = ' ';
            }


        NomDuSite xx/xx/xxxx à xx:xx


    Jusqu'à là tout marche comme je le souhaite, mais les complications arrivent...
    Voila, la chaine "site" n'a pas encore fini d'être trafiquée il faut que je retire ce qui se trouve après
    NomDuSite, mais je n'y arrive pas vraiment.
    Voila ce que j'ai tenté (sans succès) :

    longueurChaine = strlen(date[0]);
            i = 0;
            for(i=longueurChaine; i>longueurChaine; i--)
            {
                site[i] = ' ';
            }


    La chaine date n'a pas changer :
    NomDuSite xx/xx/xxxx à xx:xx



    Si vous pouviez m'aider, svp ? :D
    • Partager sur Facebook
    • Partager sur Twitter
      18 mai 2007 à 10:48:40


      #include <stdio.h>

      int main(void)
      {
        char site[256], date[12], heure[8];
        char texte[] = "Nombre de personnes actuellement sur NomDuSite le xx/xx/xxxx à xx:xx";
           
        sscanf(texte, "Nombre de personnes actuellement sur %s le %s à %s", site, date, heure);
        printf("Texte : %s\n", texte);   
        printf("Site  : %s\n", site);
        printf("Date  : %s\n", date);
        printf("Heure : %s\n", heure);   
        return 0;
      }
      • Partager sur Facebook
      • Partager sur Twitter
        18 mai 2007 à 11:12:41

        Oui sscanf, sinon tu peut te documenter du côté de strtok, avec comme token un espace " ", qui permettra "d'éclater" ta chaîne en plusieurs chaînes avec un espace comme séparateur.
        A voir.
        • Partager sur Facebook
        • Partager sur Twitter
        J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
          18 mai 2007 à 12:00:49

          Merci à vous deux ! :p

          magma c'est exactement un truc comme ça qu'il me fallait :D

          je me renseigne quand même sur strtok d'après ce que j'en ai vu ca à l'air intéressant, mais sa ne correspond pas à ce que j'ai besoin pour mon programme actuel ;)
          • Partager sur Facebook
          • Partager sur Twitter

          Effacer la fin d'une chaine

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown