IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

enregistrer que les 2 premieres lettres d'une phrase


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut enregistrer que les 2 premieres lettres d'une phrase
    bonjour,
    voila j'ai dans une combobox des choix ecrit sous la forme
    SA:tous les samedis
    SU:tous les dimanches
    je suis obligée de mettre en toutes lettres pour l'utilisateur,
    mais pour l'enregistrer je dois enregistrer que les deux première lettre je ne vois pas comment le faire.
    Si il avait fallu enlever les deux premieres lettres et le ":", j'aurais utiliser un
    fseek(memo,3,SEEK_CUR); quelque chose comme ca mais la je ne sais pas comment faire.faut -il que je copie ce que l'utilisateur choisit dans un nouveau fichier et ensuite utiliser une fonction qui me permettrait de recuperer que les deux premières lettres?
    merci

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Pour ca il peut être un bon exercice d'implémenter soi même sa propre fonction mais il faut réfléchir avant. La solution que je propose permet de garder la même adresse de chaîne sans même passer par une chaîne temporaire...

    En fait ca consiste au déplacement des caractères se situant après le caractère ':' au début de la chaîne puis remplir la fin par des zéros de fin de chaîne !

    Voici une implémentation possible:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #include <stdio.h>
     
     
    void remove_begin (char * str, const char delim)
    {
       if (str != NULL)
       {
          char * p1 = str;
          char * p2 = str;
     
     
          /* Recherche du caractre contenu dans delim */
          while (*p2++ != delim);
     
     
          /* Deplacement des caractères de la chaine. */
          do
          {
             *p1++ = *p2++;
          }
          while (*p2);
     
     
          /* On rempli le reste avec des zeros de fin. */
          do
          {
             *p1++ = 0;
          }
          while (p1 != p2);
       }
    }
     
     
    int main (void)
    {
       char phrase [50] = "SA:tous les samedis";
     
     
       printf ("Avant : %s\n", phrase);
       remove_begin (phrase, ':');
       printf ("Apres : %s\n", phrase);
     
     
       return 0;
    }
    Résultat à la sortie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Avant : SA:tous les samedis
    Apres : tous les samedis
     
    Press ENTER to continue.
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    oui le truc c'est que moi je veux qui mette
    avant: SA:tous les samedis
    après: SA
    et ca je ne vois vraiment pas
    car remplacer par des zeros ce qui est a droite ca va mais a gauche je vois pas trop

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Bin dans ce cas tu peux créer un tableau de char de taille 3 (ou plus si tu veux) puis un coup avec la fonction strncpy et c'est ok
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    je vais essayé de faire ca quand j'aurais mes cours sur moi car c'est assez loi les tableau mais je pense avoir compris le principe par contre peux tu répondre s'il te plait à mon message "utiliser un tableau de pointeur" car je ne penses pas pouvoir regler ce problème toute seul
    merci

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    j'ai defini un tableau de 2 caractere puisque je veux que les deux premieres lettres
    j'ai fais
    char tab1[2];
    const gchar *mois;
    strcpy(tab1,mois);
    fprintf(memo,%c,tab1[2]);

    mais ca ne va pas,et pas de message d'erreur?

Discussions similaires

  1. Recuper les premieres lettres d'une string
    Par Ya7yaKech dans le forum Windows Forms
    Réponses: 6
    Dernier message: 01/03/2009, 18h35
  2. Garder que les 10 premiers caractère d'une variable
    Par dembroski dans le forum Langage
    Réponses: 2
    Dernier message: 27/06/2007, 16h18
  3. Réponses: 2
    Dernier message: 17/03/2007, 02h36
  4. Réponses: 4
    Dernier message: 18/02/2006, 20h42
  5. Prendre que les 5 premiers enregistrements (les + important)
    Par __fabrice dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/11/2005, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo