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 :

[string] substr


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 889
    Par défaut [string] substr
    Bonjour

    Comme la fonction Rechercher a été désactivée (), me voici à vous poser cette question sans doute très bête. Je dipose d'une longue chaîne de caractère et je veux récupérer des morceaux de cette chaîne avec une certaine taille :
    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
     
    void Find_siRNAs(siRNA_Ensembl *ensemble, std::string sequence, int length, int MaxGC, int MinGC){
        for(unsigned int i=0; i<sequence.length(); i++){
            unsigned int window = i+length;
            if(window>sequence.length())
                break;
            else{
                std::cout << i << " " << window << std::endl;
                siRNA *si = new siRNA();
                si->sequence = sequence.substr(i, window);
                std::cout << si->sequence << std::endl;
                si->GC = getPercentGC(si->sequence);
                if(si->sequence.length()==(unsigned int)length)
                    ensemble->ensembl.push_back(si);
            }
        }
    }
    Quand je regarde les paramètres de la fonction substr, ils sont corrects. Seulement, la fonction substr, me renvoit des chaînes de caractères de taille variable . Je pense ne pas avoir compris le fonctionnement de cette méthode qui diffère avec la fonction homonyme sous Perl.
    Pouvez-vous m'éclairer ?
    Merci d'avance.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  2. #2
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for(unsigned int i=0; i<sequence.length(); i++){
        unsigned int window = i+length;
    c'est normal qu'à chaque itération la longueur varie. Je ne comprends pas ce que tu attends comme résultat.

    Note que ton code comporte un problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    else{
                std::cout << i << " " << window << std::endl;
                siRNA *si = new siRNA();
                si->sequence = sequence.substr(i, window);
                std::cout << si->sequence << std::endl;
                si->GC = getPercentGC(si->sequence);
                if(si->sequence.length()==(unsigned int)length)
                    ensemble->ensembl.push_back(si);
            }
    si le if() est faux, l'allocation faite juste au dessus est perdue -> fuite de mémoire.

  3. #3
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 889
    Par défaut
    Bonjour Aurélien

    Merci de ta réponse.
    Néanmoins, je ne comprend ta remarque à ce niveau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     for(unsigned int i=0; i<sequence.length(); i++){
        unsigned int window = i+length;
    Sinon, je te remercie pour ta remarque pour la fuite mémoire, je vais réparer ça.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  4. #4
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 889
    Par défaut
    Hello

    Ok, j'ai trouvé
    Le deuxième paramètre est un offset et pas la position finale que je veux lire.
    C'est bien compris.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec string::substr()
    Par spirzouf dans le forum Débuter
    Réponses: 4
    Dernier message: 08/11/2011, 13h10
  2. String.Copy & String.Substring
    Par la_praline dans le forum C#
    Réponses: 6
    Dernier message: 06/03/2009, 01h06
  3. Réponses: 1
    Dernier message: 31/12/2008, 16h22
  4. string dégénéré après substr()...
    Par cheprod dans le forum C++
    Réponses: 3
    Dernier message: 28/04/2006, 17h24
  5. string.substr() & string.split() ???
    Par BnA dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/03/2006, 15h27

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