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

C++ Discussion :

[débutant] Fonction pour extraire une partie d'une chaine de caractère


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 30
    Points : 18
    Points
    18
    Par défaut [débutant] Fonction pour extraire une partie d'une chaine de caractère
    Bonjours,
    je débute depuis peu en C/C++ (je ne sait même pas exactement avec le quel je programme...) et je reste bloquer sur un problème épineux :
    Je voudrait faire une fonction pour obtenir le path d'un fichier à partir du chemin d'accès. Explication :
    Je passe en argument a ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files\fast-ftp\fast-ftp.exe
    et je veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files\fast-ftp\
    pour pouvoir avoir sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files\fast-ftp\config.ini
    Autre problème :
    lorsque j'utilise la fonction strcat pour concatener "C:\Program Files\fast-ftp\" eet "config.ini", la valeur de argv[1] est remplacer par "onfig.ini" hors j'ai besoin de argv[1] plus loins mais non modifié si possible...
    Quelqu'un aurai-t-il une solution à me proposer ???
    Merci

  2. #2
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    puisque tu débutes en C++, autant partir sur de bonnes bases. Pour les chaines de caractères en c++, on utilise la classe string de la STL. Tout est parfaitement bien expliqué dans la faq: faq sur les string
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Merci beaucoup pour ce lien très utile
    J'avait déja chercher dans la faq mais mal ou pas au bonnne endroit on dirait.
    Je vait essayer de trouver se que je cherche et on verra si je trouve une solution. Par contre si quelqu'un à une explication quand au fait que la fonction strcat modifie la valeur de argv[1]...

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Par contre si quelqu'un à une explication quand au fait que la fonction strcat modifie la valeur de argv[1]...
    Parce que tu places le résultat de la concaténation directement dans argv[0], et que comme il ne contient pas assez de place pour les caractères ajoutés ça déborde sur argv[1] ?

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    A oui possible
    Je pense que cette hypothèse se vérifie car argv[1] contient l'argument de strcat en entier sauf le premier caractère qui doit donc être placer dans argv[0].
    Dans se cas, je suppose qu'il faut copié les tableau argv[0] et passer se nouveau tableau en argument à strcat. Je vait donc essayer.
    Merci de m'avoir éclairer

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Hum... C'est pas pour rien qu'on t'a orienté vers std::string...

Discussions similaires

  1. donner une couleur a une partie d'une forme
    Par ralf91 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/04/2008, 17h02
  2. Réponses: 1
    Dernier message: 04/04/2008, 12h14
  3. Sélectionner seulement une partie d'une valeur d'une cellule
    Par ArthurO0O dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/08/2007, 11h05
  4. masquer une partie d'une vidéo par une banniere
    Par lezabour dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 16/10/2006, 16h47
  5. copier une partie d'une image vers une autre
    Par gregcat dans le forum Langage
    Réponses: 1
    Dernier message: 14/04/2006, 13h39

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