Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2915 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] Méthode replace de la classe string

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Méthode replace de la classe string

n°1468882
pedro001
Posté le 01-11-2006 à 22:08:09  profilanswer
 

Salut à tous!
 
J'ai un dm à faire et mon prof nous demande de modifier des caractères dans une chaine à l'aide de la fonction replace en espace de nom system...
 
Sur MSDN j'ai trouvé comment faire en standard mais en system je sèche...
 
quelqu'un pourrait m'aider s'il vous plait?
 
merci d'avance  :jap:

mood
Publicité
Posté le 01-11-2006 à 22:08:09  profilanswer
 

n°1468896
fhr
Posté le 01-11-2006 à 22:32:40  profilanswer
 

euh tu parles de classe et d'espace de nom, t'es sûr que c'est du C et pas du C++ ?

n°1468899
pedro001
Posté le 01-11-2006 à 22:35:46  profilanswer
 

bah ouai j'suis bète..la classe string elle est utilisée en C++ non?
 
mais oui je pense que t'as raison!

n°1468934
jesus_chri​st
votre nouveau dieu
Posté le 02-11-2006 à 00:07:26  profilanswer
 

les classes c'est du C++, alors la classe string aussi :)

n°1469304
pedro001
Posté le 02-11-2006 à 15:18:58  profilanswer
 

ouai j'ai vérifier de mon coté mais qu'est ce qui change entre l'espace de nom standard et système?

n°1469376
IrmatDen
Posté le 02-11-2006 à 16:16:54  profilanswer
 

Euh, juste comme ça, et je me trompe peut-être, espace de nom système pour un langage avec un C, ça me fait penser à C#/.NET, plutôt qu'à C++.
 
Change de cat si tu veux une réponse, j'ai crains que tu n'ais ta réponse ici...

n°1469459
pedro001
Posté le 02-11-2006 à 17:37:30  profilanswer
 

non non c'est bien du c++ on n'a pas vu les autres langages ;)
 
par contre j'ai avance un peu :
 

Code :
  1. //utilisation de la méthode replace de la classe string
  2. #include "stdafx.h"
  3. #include <iostream>
  4. #include <string>
  5. #include <algorithm>
  6. using namespace std;
  7. int main()
  8. {
  9. string str;
  10. cout<<"Entrez votre chaine de caractere : "<<endl;
  11. cin>>str;
  12. cout << "Vous avez entre : "<< str << endl;
  13. int pos=0;
  14. while ( (pos=str.find("m",0)) != string::npos )
  15. str.replace(pos, 1, ";" );//remplacement
  16. cout << "apres remplacement : " << str << endl;
  17. }


 
mais je dois encore modifier quelque petites choses...déja je voudrais que la chaine que j'entre puisse ètre une phrase avec des espaces (parceque là la chaine s'arrète au 1er espace),et je voudrais aussi modifier le caractère de remplacement enfin qu'il y ait une possibilité de choix quoi..
 
seulement je suis plus à l'aise avec les char qu'avec les string..vous pouvez m'aider s'il vous plait?je regarderais pour passer en espace de nom system une fois que ce code marchera correctementje pense que c'est mieux pour la compréhension nan?
 
merci à tous!

n°1469671
IrmatDen
Posté le 02-11-2006 à 23:18:02  profilanswer
 

getline() te permettra de saisir une chaîne avec des espaces. Pour les caractères simples, regarde du côté de cin.get().


---------------
.
n°1469675
pedro001
Posté le 02-11-2006 à 23:43:28  profilanswer
 

Merci pour ton aide IrmatDen!
 

Code :
  1. //utilisation de la méthode replace de la classe string
  2. #include "stdafx.h"
  3. #include <iostream>
  4. #include <string>
  5. #include <algorithm>
  6. using namespace std;
  7. int main()
  8. {
  9. string str;
  10. cout<<"Entrez votre chaine de caractere : "<<endl;
  11. getline(cin,str);
  12. cout << "Vous avez entre : "<< str << endl;
  13. int pos=0;
  14. string car;//caractère à modifier
  15. cout<<"Entrez le caractère a modifier : "<<endl;
  16. car=cin.get();
  17. while ( (pos=str.find("car",0)) != string::npos )
  18. str.replace(pos, 1, ";" );//remplacement
  19. cout << "apres remplacement : " << str << endl;
  20. }


 
Les fonctions marchent mais le caractère n'est pas remplacé..ça m'échappe un peu ça...et j'ai pas compris la syntaxe de la commande getline()..sur un autre programme j'avais utilisé cette fonction mais en l'écrivant cin.getline et pas getline(cin).
 
En tous cas c'est cool de m'aider!j'suis tout perdu sinon  :cry:  
 
merci ;)
 
Edit: Youpi c'est bonnnnn!!je sais pas pourquoi il y avait des guillemets autour du car...c'était un code de base vraiment basique (lapalissade :D ) que j'ai trouvé puis tout modifier mais j'avais pas compris l'interet de ces trucs...


Message édité par pedro001 le 02-11-2006 à 23:46:20
n°1469684
pedro001
Posté le 03-11-2006 à 00:09:18  profilanswer
 

bon bah voila en exclu mon programme:
 

Code :
  1. //utilisation de la méthode replace de la classe string
  2. #include "stdafx.h"
  3. #include <iostream>
  4. #include <string>
  5. #include <algorithm>
  6. using namespace std;
  7. int main()
  8. {
  9. string str;
  10. cout<<"Entrez votre chaine de caractere : ";
  11. getline(cin,str);
  12. cout<<"Vous avez entre : "<<str;
  13. int pos=0;
  14. string car;//caractère à modifier
  15. cout<<endl;
  16. cout<<"Entrez le caractere a modifier : ";
  17. car=cin.get();
  18. while ( (pos=str.find(car,0)) != string::npos )
  19. str.replace(pos, 1,"*" );//remplacement
  20. cout << "Vous avez choisit de remplacer le caractere "<<car<<" par *, voici le resultat : "<<endl;
  21. cout<<str << endl;
  22. cout<<endl;
  23. }


 
mais maintenant comment le passer en espace de nom system?

mood
Publicité
Posté le 03-11-2006 à 00:09:18  profilanswer
 

n°1469688
IrmatDen
Posté le 03-11-2006 à 00:13:46  profilanswer
 

J'en sais rien, je connais pas encore .Net :/
 
Edit: un petit google t'en diras plus, voire même directement la msdn...


Message édité par IrmatDen le 03-11-2006 à 00:14:09

---------------
.
n°1469708
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 03-11-2006 à 07:28:54  profilanswer
 

pedro001 a écrit :


mais maintenant comment le passer en espace de nom system?


hein ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°1469716
pedro001
Posté le 03-11-2006 à 08:26:16  profilanswer
 

bah la je suis en using namespace std et il faudrait que je passe en using namespace system

n°1469797
IrmatDen
Posté le 03-11-2006 à 11:11:46  profilanswer
 

Harko> Je me demandais sérieusement s'il ne parlait pas de l'extension .net à C++ là. Je me plante royalement ou quoi? :D

n°1469802
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 03-11-2006 à 11:16:18  profilanswer
 

IrmatDen a écrit :

Harko> Je me demandais sérieusement s'il ne parlait pas de l'extension .net à C++ là. Je me plante royalement ou quoi? :D


ben non, c'est ce que je comprends aussi !
mais si c'est vraiment ça, ça veut dire passer en C++/CLI managé, avec la syntaxe qui va avec, modifier une option du compilateur pour compiler en IL,  utiliser System::String au lieu de std::string (avec les méthodes qui ne sont pas les mêmes), etc... ça me parait un peu farfelu pour un exo [:el g]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1469893
IrmatDen
Posté le 03-11-2006 à 12:28:06  profilanswer
 

:D

n°1469943
pedro001
Posté le 03-11-2006 à 13:32:22  profilanswer
 

bon bah voila le sujet pour vous éclairer parce que je peux pas trop vous aider quand vous parlez de .net
 
http://img227.imageshack.us/img227/6082/numriser0001zi8.th.jpg

n°1469953
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 03-11-2006 à 13:42:17  profilanswer
 

ah ben effectivement, c'est bien ce qu'on avait compris, c'est du .NET [:el g]
ben t'as plus qu'à te plonger dans ce qu'ils appellent "la documentation de travail" (mdr), et à chercher les infos suivantes :
- paramétrage du compilateur pour le faire reconnaitre du C++ managé,
- utilisation de System.String.Replace()
tain l'exo de merde... vraiment n'importe quoi


---------------
J'ai un string dans l'array (Paris Hilton)
n°1469978
IrmatDen
Posté le 03-11-2006 à 13:59:27  profilanswer
 

C'est tout de même la première fois que je vois une école recommander de consulter la MSDN; on va pas leur en vouloir pour ça hein? :)
Par contre, par curiosité, tu peux utiliser cette classe sans utiliser la classe Console? Ou une fois que t'es dans .net, tu l'es jusqu'au bout? (vrai question)

n°1470483
pedro001
Posté le 04-11-2006 à 10:46:29  profilanswer
 

Harkonnen a écrit :

ah ben effectivement, c'est bien ce qu'on avait compris, c'est du .NET [:el g]
ben t'as plus qu'à te plonger dans ce qu'ils appellent "la documentation de travail" (mdr), et à chercher les infos suivantes :
- paramétrage du compilateur pour le faire reconnaitre du C++ managé,
- utilisation de System.String.Replace()
tain l'exo de merde... vraiment n'importe quoi


 
ah ouai l'exo n'est pas top???parceque là t'as que le recto de la page  :cry:  :lol:  
 

IrmatDen a écrit :

C'est tout de même la première fois que je vois une école recommander de consulter la MSDN; on va pas leur en vouloir pour ça hein? :)
Par contre, par curiosité, tu peux utiliser cette classe sans utiliser la classe Console? Ou une fois que t'es dans .net, tu l'es jusqu'au bout? (vrai question)


j'ai pas compris la fin de ta question en fait...j'suis vraiment une brèle en programmation...

n°1470570
IrmatDen
Posté le 04-11-2006 à 15:35:57  profilanswer
 

C'était pas tant pour toi que pour Harko cette question, mais tu pourras y répondre quand tu l'auras fini ;)


---------------
.
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] Méthode replace de la classe string

 

Sujets relatifs
s'échapper d'un while (cin>>string)...Passage d'une string C# à une std::string C++
[VB.NET] Fermer un process ouvert avec la méthode "GetObject" ???TextField.text : le String magique ?
Comment spécifier la classe des objets d'une ArrayList ?[Access] Méthode hébergement Server.mdb et client utilisateur final
La bonne methode pour faire un siteLa classe System.IO StreamReader
Classe virtuelle pure & destructeurNotice: Undefined offset d'une fonction dans une classe
Plus de sujets relatifs à : [C] Méthode replace de la classe string


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR