C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

recherche d'une sous chaine et chaine vers tableau(ou vector

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Didier
Guest





PostPosted: Wed Mar 03, 2004 5:03 pm    Post subject: recherche d'une sous chaine et chaine vers tableau(ou vector Reply with quote



bonjour,

je débute en C++ et C tout court d'ailleur;

s1 = "titi tutu tototo"
s2 = "titi tutu toto"
s3 = "titi tutu toto " (un espace à la fin)

je recherche la chaine "toto" exclusivement,
comment faut-il faire ?
dans s1 il y a bient tototo, mais c'est toto que je cherche, s1 pas ok, s2
et s3 ok



ma deuxième question :

comment faire pour intégrer une chaine dans un tableau ou un vector,
exemple : s1 = "25.33 17.34 67.00" les valeurs sont séparée pas des espaces,
je voudrait que chaque valeur devienne l'élément d'un tableau.

d'avance merci

didier


Back to top
Guillaume LEMAÎTRE
Guest





PostPosted: Wed Mar 03, 2004 5:29 pm    Post subject: Re: recherche d'une sous chaine et chaine vers tableau(ou ve Reply with quote



Didier wrote:
Quote:
bonjour,

je débute en C++ et C tout court d'ailleur;

s1 = "titi tutu tototo"
s2 = "titi tutu toto"
s3 = "titi tutu toto " (un espace à la fin)

je recherche la chaine "toto" exclusivement,
comment faut-il faire ?
dans s1 il y a bient tototo, mais c'est toto que je cherche, s1 pas ok, s2
et s3 ok


donc ça n'est pas tot que tu cherches, c'est
[caractère séparateur]"toto"[caractère séparateur]
avec [caractère séparateur] = début de chaîne | fin de chaine | blanc |
tabulation


Back to top
Didier
Guest





PostPosted: Wed Mar 03, 2004 5:37 pm    Post subject: Re: recherche d'une sous chaine et chaine vers tableau(ou ve Reply with quote




"Guillaume LEMAÎTRE" <zarmalala (AT) biniou (DOT) org> a écrit dans le message de
news:c254kr$89b$1 (AT) news-reader3 (DOT) wanadoo.fr...
Quote:
Didier wrote:
bonjour,

je débute en C++ et C tout court d'ailleur;

s1 = "titi tutu tototo"
s2 = "titi tutu toto"
s3 = "titi tutu toto " (un espace à la fin)

je recherche la chaine "toto" exclusivement,
comment faut-il faire ?
dans s1 il y a bient tototo, mais c'est toto que je cherche, s1 pas ok,
s2
et s3 ok


donc ça n'est pas tot que tu cherches, c'est
[caractère séparateur]"toto"[caractère séparateur]
avec [caractère séparateur] = début de chaîne | fin de chaine | blanc |
tabulation


si s4 = "titi toto tutu" c'est ok aussi,
si s5 ="toto" ou " toto" ou "toto " ou " toto " c'est ok

"tototo " c'est pas bon...

je cherche toto, quel que soit sa position dans la chaine



Back to top
Luc Hermitte
Guest





PostPosted: Wed Mar 03, 2004 6:41 pm    Post subject: Re: recherche d'une sous chaine et chaine vers tableau(ou ve Reply with quote

Salut,

"Didier" <toto (AT) wanadoo (DOT) fr> wrote in
news:c25353$lg4$1 (AT) news-reader5 (DOT) wanadoo.fr:

Quote:
s1 = "titi tutu tototo"
s2 = "titi tutu toto"
s3 = "titi tutu toto " (un espace à la fin)

je recherche la chaine "toto" exclusivement,
comment faut-il faire ?
dans s1 il y a bient tototo, mais c'est toto que je cherche, s1 pas
ok, s2 et s3 ok

A coup de find (méthode de std::string) plus tests de présence d'espaces
on doit pouvoir s'en sortir.
Il est aussi possible de mettre la mettre dans un istringstream,
d'extraire chaque morceau et comparer avec ce qui est recherché.
Personnellement, j'opterai plutôt pour la solution des expressions
régulières (boost::regex (http://www.boost.org) -- un chouilla complexe à
installer pour un débutant peut-être, mais au final un code plus succinct
je trouve).

Quote:
ma deuxième question :

comment faire pour intégrer une chaine dans un tableau ou un vector,
exemple : s1 = "25.33 17.34 67.00" les valeurs sont séparée pas des
espaces, je voudrait que chaque valeur devienne l'élément d'un
tableau.

#include <sstream>
#include <vector>
#include <iterator>
#include <algorithm>
#include <string>


....{
const std::string s1 = "25.33 17.34 67.00";
std::istringstream iss(s1);

// On rempli le vecteur de doubles
std::vector<double> v;
std::copy(std::istream_iterator(iss), std::istream_iterator(),
std::back_inserter(v));

// On affiche le vecteur de doubles:
std::copy(v.begin(), v.end(),
std::ostream_iterator<double>(std::cout, " -- "));
....

--
Luc Hermitte <hermitte at free.fr>
FAQ de <news:fr.comp.lang.c++> :
<http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/>
Dejanews : <http://groups.google.com/advanced_group_search>

Back to top
Guillaume LEMAÎTRE
Guest





PostPosted: Wed Mar 03, 2004 6:56 pm    Post subject: Re: recherche d'une sous chaine et chaine vers tableau(ou ve Reply with quote

Didier wrote:
Quote:
"Guillaume LEMAÎTRE" <zarmalala (AT) biniou (DOT) org> a écrit dans le message de
news:c254kr$89b$1 (AT) news-reader3 (DOT) wanadoo.fr...


donc ça n'est pas toto que tu cherches, c'est
[caractère séparateur]"toto"[caractère séparateur]
avec [caractère séparateur] = début de chaîne | fin de chaine | blanc |
tabulation



si s4 = "titi toto tutu" c'est ok aussi,
si s5 ="toto" ou " toto" ou "toto " ou " toto " c'est ok

"tototo " c'est pas bon...

je cherche toto, quel que soit sa position dans la chaine



c'est bien ce que je dis

cherche " toto " dans toute la châine et vérifie si elle commence par
"toto " ou si elle se finit par " toto"


Back to top
Didier
Guest





PostPosted: Wed Mar 03, 2004 8:01 pm    Post subject: Re: recherche d'une sous chaine et chaine vers tableau(ou ve Reply with quote

Merci pour votre aide, je vai essayer tout çà


Didier



"Luc Hermitte" <hermitte (AT) free (DOT) fr.invalid> a écrit dans le message de
news:Xns94A1C83B3D1D8isyfur (AT) 127 (DOT) 0.0.1...
Quote:
Salut,

"Didier" <toto (AT) wanadoo (DOT) fr> wrote in
news:c25353$lg4$1 (AT) news-reader5 (DOT) wanadoo.fr:

s1 = "titi tutu tototo"
s2 = "titi tutu toto"
s3 = "titi tutu toto " (un espace à la fin)

je recherche la chaine "toto" exclusivement,
comment faut-il faire ?
dans s1 il y a bient tototo, mais c'est toto que je cherche, s1 pas
ok, s2 et s3 ok

A coup de find (méthode de std::string) plus tests de présence d'espaces
on doit pouvoir s'en sortir.
Il est aussi possible de mettre la mettre dans un istringstream,
d'extraire chaque morceau et comparer avec ce qui est recherché.
Personnellement, j'opterai plutôt pour la solution des expressions
régulières (boost::regex (http://www.boost.org) -- un chouilla complexe à
installer pour un débutant peut-être, mais au final un code plus succinct
je trouve).

ma deuxième question :

comment faire pour intégrer une chaine dans un tableau ou un vector,
exemple : s1 = "25.33 17.34 67.00" les valeurs sont séparée pas des
espaces, je voudrait que chaque valeur devienne l'élément d'un
tableau.

#include <sstream
#include #include #include #include

...{
const std::string s1 = "25.33 17.34 67.00";
std::istringstream iss(s1);

// On rempli le vecteur de doubles
std::vector std::copy(std::istream_iterator(iss), std::istream_iterator(),
std::back_inserter(v));

// On affiche le vecteur de doubles:
std::copy(v.begin(), v.end(),
std::ostream_iterator<double>(std::cout, " -- "));
...

--
Luc Hermitte <hermitte at free.fr
FAQ de http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/
Dejanews : <http://groups.google.com/advanced_group_search



Back to top
Fabien LE LEZ
Guest





PostPosted: Wed Mar 03, 2004 8:30 pm    Post subject: Re: recherche d'une sous chaine et chaine vers tableau(ou ve Reply with quote

On Wed, 3 Mar 2004 18:03:28 +0100, "Didier" <toto (AT) wanadoo (DOT) fr> wrote:

Quote:
je débute en C++ et C tout court d'ailleur;

Je rappelle que le C++ et le C sont deux langages différents. C'est un
peu comme si tu disais "Je débute en Basic et en Java tout court
d'ailleurs"...

--
;-)

Back to top
Alain Naigeon
Guest





PostPosted: Wed Mar 03, 2004 10:37 pm    Post subject: Re: recherche d'une sous chaine et chaine vers tableau(ou ve Reply with quote

"Fabien LE LEZ" <gramster (AT) gramster (DOT) com> a écrit dans le message news:
[email]dtfc4011ssff22nnhh4fnl3l1mmmdmjaku (AT) 4ax (DOT) com[/email]...
Quote:
On Wed, 3 Mar 2004 18:03:28 +0100, "Didier" <toto (AT) wanadoo (DOT) fr> wrote:

je débute en C++ et C tout court d'ailleur;

Je rappelle que le C++ et le C sont deux langages différents.

Hum, finalement oui, mais le nom et la volonté de compatibilité
suscitent la confusion chez les nouveaux arrivants !

Quote:
C'est un
peu comme si tu disais "Je débute en Basic et en Java tout court
d'ailleurs"...

J'aurais tout de même inversé, à moins que tu ne considère Basic
comme une large extension de Java ? ;-)

--



Back to top
Fabien LE LEZ
Guest





PostPosted: Wed Mar 03, 2004 11:54 pm    Post subject: Re: recherche d'une sous chaine et chaine vers tableau(ou ve Reply with quote

On Wed, 3 Mar 2004 23:37:35 +0100, "Alain Naigeon" <anaigeon (AT) free (DOT) fr>
wrote:

Quote:
Je rappelle que le C++ et le C sont deux langages différents.

Hum, finalement oui, mais le nom et la volonté de compatibilité
suscitent la confusion chez les nouveaux arrivants !

C'est pour ça que je préfère que ce soit clair tout de suite, quitte à
enfoncer des portes ouvertes.

Quote:
à moins que tu ne considère Basic
comme une large extension de Java ?

A priori, non, pour des raisons historiques (Basic est antérieur).

Mais je ne souhaite pas non plus considérer C++ comme une large
extension de C, du moins quand je programme (et surtout quand je parle
à un débutant).

--
;-)

Back to top
Didier
Guest





PostPosted: Thu Mar 04, 2004 9:36 pm    Post subject: Re: recherche d'une sous chaine et chaine vers tableau(ou ve Reply with quote


"Luc Hermitte" <hermitte (AT) free (DOT) fr.invalid> a écrit dans le message de
news:Xns94A1C83B3D1D8isyfur (AT) 127 (DOT) 0.0.1...
Quote:
Salut,

"Didier" <toto (AT) wanadoo (DOT) fr> wrote in
news:c25353$lg4$1 (AT) news-reader5 (DOT) wanadoo.fr:

s1 = "titi tutu tototo"
s2 = "titi tutu toto"
s3 = "titi tutu toto " (un espace à la fin)

je recherche la chaine "toto" exclusivement,
comment faut-il faire ?
dans s1 il y a bient tototo, mais c'est toto que je cherche, s1 pas
ok, s2 et s3 ok

A coup de find (méthode de std::string) plus tests de présence d'espaces
on doit pouvoir s'en sortir.
Il est aussi possible de mettre la mettre dans un istringstream,
d'extraire chaque morceau et comparer avec ce qui est recherché.
Personnellement, j'opterai plutôt pour la solution des expressions
régulières (boost::regex (http://www.boost.org) -- un chouilla complexe à
installer pour un débutant peut-être, mais au final un code plus succinct
je trouve).

ma deuxième question :

comment faire pour intégrer une chaine dans un tableau ou un vector,
exemple : s1 = "25.33 17.34 67.00" les valeurs sont séparée pas des
espaces, je voudrait que chaque valeur devienne l'élément d'un
tableau.

#include <sstream
#include #include #include #include

...{
const std::string s1 = "25.33 17.34 67.00";
std::istringstream iss(s1);

// On rempli le vecteur de doubles
std::vector std::copy(std::istream_iterator(iss), std::istream_iterator(),
std::back_inserter(v));

// On affiche le vecteur de doubles:
std::copy(v.begin(), v.end(),
std::ostream_iterator<double>(std::cout, " -- "));
...




J'ai testé et c'est génial, j'ai juste dû rajouter le type aux itérators.
std::copy(std::istream_iterator<double>(iss),
std::istream_iterator<double>(), std::back_inserter(v));

encore merci

didier







Quote:
--
Luc Hermitte <hermitte at free.fr
FAQ de http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/
Dejanews : <http://groups.google.com/advanced_group_search



Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.