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++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    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
    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 confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 599
    Par défaut
    std::find retourne un itérateur pas un indice

  3. #3
    Membre extrêmement actif
    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
    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 confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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 599
    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