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 :

Trouver un point dans une chaîne de caractères


Sujet :

C++

  1. #1
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut Trouver un point dans une chaîne de caractères
    bonjour
    J'ai des points qui sont collé au mot. Il faut que je les isole
    j'ai codé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    len = std::find( ptWord.begin(), ptWord.end(), L".");
    et le compilateur me jette:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    1>..\..\..\..\Linguistic\Analyser\src\segmentation.cpp(212): error C2440: '='*: impossible de convertir de 'std::_String_iterator<_Elem,_Traits,_Alloc>' en 'int'
    1>          with
    1>          [
    1>              _Elem=wchar_t,
    1>              _Traits=std::char_traits<wchar_t>,
    1>              _Alloc=std::allocator<wchar_t>
    1>          ]
    1>          Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
    qui m'orientera sera

  2. #2
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 565
    Points : 7 648
    Points
    7 648
    Par défaut
    std::find retourne un itérateur pas un indice

  3. #3
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Points : 332
    Points
    332
    Par défaut J'ai pris en compte ton observation
    J'ai pris en compte ton observation:
    j'ai déclaré:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      std::list<CAnalysedWord*>::iterator itWord;
      std::wstring ptWord;
    et CAnalysedWord est déclarée
    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
    	class CAnalysedWord
    	{
    	public:
    		unsigned long long          ullWordID;				//  Identifiant du Word dans la base de données
    		unsigned long long          ullLemmaID;				//  Identifiant du Lemma dans la base de données
    		std::wstring                wsWord;                   //  Texte du mot
    		std::wstring                wsLemma;                  //  Texte du lemma
    		enPOS                       POS;                      //  Part Of Speech du lemma (et du mot)
    		enGender                    iGender;                  //  Genre du lemma (et du mot)
    		enPers                      iPers;					//	Personne si c'est un verbe
    		enNbr                       iNbr;						//	nombre du mot
    		std::wstring                wsPronunciation;          //  indication de progres du chunk)
    		int                         iExcluded;                //  La valeur du lemma est important ou non
    		unsigned long               ulStart;                  //  Position du premier caractère du mot dans le segment
    		unsigned long               ulLength;                 //  Longueur du mot (les espaces sont exclus)
     
     
    		CAnalysedWord()
    		{
    		}
    		~CAnalysedWord()
    		{;}
    	};
    Le code est ainsi devenu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		  ptWord = pWord->wsWord;
    		  itWord = std::find( ptWord.begin(), ptWord.end(), L".");
    		  if( itWord != ptWord.end())
    mais le compilateur n'aime toujours pas
    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
    46
    47
    ..\..\..\..\Linguistic\Analyser\src\segmentation.cpp(213): error C2679: '=' binaire*: aucun opérateur trouvé qui accepte un opérande de partie droite de type 'std::_String_iterator<_Elem,_Traits,_Alloc>' (ou il n'existe pas de conversion acceptable)
    1>          with
    1>          [
    1>              _Elem=wchar_t,
    1>              _Traits=std::char_traits<wchar_t>,
    1>              _Alloc=std::allocator<wchar_t>
    1>          ]
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\list(393): peut être 'std::_List_iterator<_Mylist> &std::_List_iterator<_Mylist>::operator =(const std::_List_iterator<_Mylist> &)'
    1>          with
    1>          [
    1>              _Mylist=std::_List_val<SpecificationLoader::CAnalysedWord *,std::allocator<SpecificationLoader::CAnalysedWord *>>
    1>          ]
    1>          lors de la tentative de mise en correspondance de la liste des arguments '(std::_List_iterator<_Mylist>, std::_String_iterator<_Elem,_Traits,_Alloc>)'
    1>          with
    1>          [
    1>              _Mylist=std::_List_val<SpecificationLoader::CAnalysedWord *,std::allocator<SpecificationLoader::CAnalysedWord *>>
    1>          ]
    1>          and
    1>          [
    1>              _Elem=wchar_t,
    1>              _Traits=std::char_traits<wchar_t>,
    1>              _Alloc=std::allocator<wchar_t>
    1>          ]
    1>..\..\..\..\Linguistic\Analyser\src\segmentation.cpp(214): error C2678: '!=' binaire*: aucun opérateur trouvé qui accepte un opérande de partie gauche de type 'std::_List_iterator<_Mylist>' (ou il n'existe pas de conversion acceptable)
    1>          with
    1>          [
    1>              _Mylist=std::_List_val<SpecificationLoader::CAnalysedWord *,std::allocator<SpecificationLoader::CAnalysedWord *>>
    1>          ]
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\system_error(425): peut être 'bool std::operator !=(const std::error_code &,const std::error_condition &)'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\system_error(432): ou       'bool std::operator !=(const std::error_condition &,const std::error_code &)'
    1>          C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\guiddef.h(197): ou       'int operator !=(const GUID &,const GUID &)'
    1>          C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\list(298): ou       'bool std::_List_const_iterator<_Mylist>::operator !=(const std::_List_const_iterator<_Mylist> &) const'
    1>          with
    1>          [
    1>              _Mylist=std::_List_val<SpecificationLoader::CAnalysedWord *,std::allocator<SpecificationLoader::CAnalysedWord *>>
    1>          ]
    1>          lors de la tentative de mise en correspondance de la liste des arguments '(std::_List_iterator<_Mylist>, std::_String_iterator<_Elem,_Traits,_Alloc>)'
    1>          with
    1>          [
    1>              _Mylist=std::_List_val<SpecificationLoader::CAnalysedWord *,std::allocator<SpecificationLoader::CAnalysedWord *>>
    1>          ]
    1>          and
    1>          [
    1>              _Elem=wchar_t,
    1>              _Traits=std::char_traits<wchar_t>,
    1>              _Alloc=std::allocator<wchar_t>
    1>          ]

  4. #4
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 565
    Points : 7 648
    Points
    7 648
    Par défaut
    Il est où Béliveau ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    auto itWord = std::find( ptWord.begin(), ptWord.end(), L".");
    if( itWord != ptWord.end()) {
        int index = std::distance( ptWord.begin() , itWord );
        ....
    }
    Ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int index = ptWord.find( L"." );
    if ( index != std::basic_string::npos )
    {
        ....
    }

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/11/2006, 20h36
  2. Nombre d'occurences dans une chaîne de caractères
    Par Olivier14 dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2006, 19h11
  3. Impossible d'utiliser & dans une chaîne de caractère
    Par gingman dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 16/03/2006, 20h35
  4. ?> dans une chaîne de caractéres
    Par nebule dans le forum Langage
    Réponses: 8
    Dernier message: 15/11/2005, 15h01
  5. Réponses: 4
    Dernier message: 23/06/2004, 09h51

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