begin process at 2012 05 29 18:54:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

pb : string::find(string, debut, longueur) find pas :o


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb : string::find(string, debut, longueur) find pas :o

jeudi 9 septembre 2004 à 05:19:21 | pb : string::find(string, debut, longueur) find pas :o

Guillemouze

le titre en dit deja long:
quand je met la fonction sans le parametre "longueur", la fonction trouve bien, mais des ke je rajoute ce dernier parametre, la valeur n'est pas trouvee, meme si je met la longueur de la chaine !!!


string Texte = "a x=1";

cout << Texte.find(" ", 0) << endl; // affiche 2
cout << Texte.find(" ", 0, 5) << endl; // affiche 4294967295 !!!


Je n'y comprend rien. c'est du chnois pour moi (je savais que jaurai pas du acheter du matos chinois )

merci a celui ki sara me dire pourquoi !




jeudi 9 septembre 2004 à 07:14:07 | Re : pb : string::find(string, debut, longueur) find pas :o

NitRic

Réponse acceptée !

Je n'utilise pas les basic_string donc je ne l'ai connais pas beaucoup mais je viens tout juste de tester et d'après ce que j'ai pus remarquer, `longueur` représente la longueur de la chaine recherché, ex:

string str = "Bonjour, es c'est moi NitRic!";
cout << str.find("est ", 0, 2) << endl;

affiche 9

----------------------------------------------------

string str = "Bonjour, es c'est moi NitRic!";
cout << str.find("est ", 0, 3) << endl;

affiche 14



Donc en gros, si tu as une chaine comme par exemple "NitRic c'est moi" et que tu souhaite recherche _que_ le mot `NitRic` dans une autre, tu devras faire par exemple:


string str1 = "NitRic c'est moi";
string str2 = "Bonjour, c'est moi NitRic!";

cout << str2.find( str1.c_str(), 0, 6 ); /* 6 représentant les 6 premiers caractères de la chaine str1, ceux à rechercher */

ce qui affichera 19


Voilà, c'est tout ...



~(.:: NitRic ::.)~
jeudi 9 septembre 2004 à 10:38:31 | Re : pb : string::find(string, debut, longueur) find pas :o

djl

oubliez pas l'appel du constructeur

string str( "Bonjour, es c'est moi NitRic!");
jeudi 9 septembre 2004 à 10:46:20 | Re : pb : string::find(string, debut, longueur) find pas :o

NitRic


string str = "hello"; == string str("hello");

ce n'est pas l'opérateur = qui est appelé mais le constructeur basic_string( const _E * _S, ... ){...}

Dans les deux cas.



~(.:: NitRic ::.)~
jeudi 9 septembre 2004 à 10:54:15 | Re : pb : string::find(string, debut, longueur) find pas :o

djl

string str("hello"); => constructeur const charT*

string str = "hello"; => constructeur const charT* puis constructeur par copie sur l'objet temporairement créé (ce qui est inutile)

jeudi 9 septembre 2004 à 11:11:36 | Re : pb : string::find(string, debut, longueur) find pas :o

NitRic


Possible mais je ne vois aucun appel à un constructeur de recopie et d'objet temporaire ...

End debug(F11) et dans le source assembleur ...


~(.:: NitRic ::.)~
jeudi 9 septembre 2004 à 11:19:46 | Re : pb : string::find(string, debut, longueur) find pas :o

djl

a ouai ok
string str = "hello"; => appel du constructeur...
jeudi 9 septembre 2004 à 16:58:51 | Re : pb : string::find(string, debut, longueur) find pas :o

Guillemouze

ok merci c'est es clair et en + les explications vont bien plus loin que ske jattendai .
La prochaine fois je lirai + attentivement la doc

Donc eske vous savez si il est possible de rechercher une occurence entre 2 bornes? Paske sinon si je recherche une occurence et qu'elle n'apparait que bien apres la zone ou je recherche, ca va prendre du temps pour rien.
jeudi 9 septembre 2004 à 17:04:49 | Re : pb : string::find(string, debut, longueur) find pas :o

NitRic


http://www.cppreference.com
à droite: C++ Strings

find()
find_first_of()
find_last_of()
...

~(.:: NitRic ::.)~
jeudi 9 septembre 2004 à 17:24:24 | Re : pb : string::find(string, debut, longueur) find pas :o

Guillemouze

Réponse acceptée !
merci. pas mal le lien :)
pour ceux que ca interesse, la solution c dutiliser :

size_type find_first_of( const char *str, size_type index, size_type num );

pour rechercher la premier occurence d'un des carracteres de str a partir de lindex et sur une longueur de num caracteres.


Cette discussion est classée dans : pb, texte, string, find, longueur


Répondre à ce message

Sujets en rapport avec ce message

longeur d'une string [ par angelique ] Bonjour, je n'arrive pas à retourner la longueur d'une srting :string result_s;result_s = vertex_label(boost::target(*ei, g), g); int longueur = strl longeur d'une string [ par angelique ] Bonjour, je n'arrive pas à retourner la longueur d'une srting :string result_s;result_s = vertex_label(boost::target(*ei, g), g); int longueur = strl longeur d'une string [ par angelique ] Bonjour, je n'arrive pas à retourner la longueur d'une srting :string result_s;result_s = vertex_label(boost::target(*ei, g), g); int longueur = strl longeur d'une string [ par angelique ] Bonjour, je n'arrive pas à retourner la longueur d'une srting :string result_s;result_s = vertex_label(boost::target(*ei, g), g); int longueur = strl petit pb de type string [ par bidules ] D'apres ce que g pu apprendre lorsque l'on veut declarer une variable de type string il faut faire :#include string variable;c bien ca? car qd je fais longueur du texte contenu dans une variable. [ par Arcocide ] Je voudrais savoir commant obtenir la longueur du texte contenu dans une varaible ???Je suis vraiment dans la me...Aider moi!!!Merci beaucoup rs232 : pb avec ReadFile() [ par jujunio ] Frelon Bonjour, j'utilise la fonction Readfile pour lire sur le port serie rs232. Mon pb c'est que pour cette fonction, il faut rentrer en paramètre pb malloc [ par youpiyoyo ] d'apres msdn char *string; /* Allocate space for a path name */ string = malloc( _MAX_PATH );deja ca chez moi ca compil pas me compilo me di impos pb avec string-VC++ [ par didrocks ] Tout content d'essayer la class string, j'ai fait cela:#include string Chaine = "test";et là, le compilateur me donne ce message:C:\ff7tss\Filer.cpp(4 pb avec tableau et fichier texte [ par krolanta ] Voila mon pb é que g un fichier texte avec des coordonnées et que je voudrais mettre chaque coordonnées ds une case du tableau.En fait ca revient a li


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,498 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales