[C] Méthode replace de la classe string

Méthode replace de la classe string [C] - C - Programmation

Marsh Posté le 01-11-2006 à 22:08:09    

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:

Reply

Marsh Posté le 01-11-2006 à 22:08:09   

Reply

Marsh Posté le 01-11-2006 à 22:32:40    

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

Reply

Marsh Posté le 01-11-2006 à 22:35:46    

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

Reply

Marsh Posté le 02-11-2006 à 00:07:26    

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

Reply

Marsh Posté le 02-11-2006 à 15:18:58    

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

Reply

Marsh Posté le 02-11-2006 à 16:16:54    

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

Reply

Marsh Posté le 02-11-2006 à 17:37:30    

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!

Reply

Marsh Posté le 02-11-2006 à 23:18:02    

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


---------------
.
Reply

Marsh Posté le 02-11-2006 à 23:43:28    

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
Reply

Marsh Posté le 03-11-2006 à 00:09:18    

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?

Reply

Marsh Posté le 03-11-2006 à 00:09:18   

Reply

Marsh Posté le 03-11-2006 à 00:13:46    

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

---------------
.
Reply

Marsh Posté le 03-11-2006 à 07:28:54    

pedro001 a écrit :


mais maintenant comment le passer en espace de nom system?


hein ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 03-11-2006 à 08:26:16    

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

Reply

Marsh Posté le 03-11-2006 à 11:11:46    

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

Reply

Marsh Posté le 03-11-2006 à 11:16:18    

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)
Reply

Marsh Posté le 03-11-2006 à 12:28:06    

:D

Reply

Marsh Posté le 03-11-2006 à 13:32:22    

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

Reply

Marsh Posté le 03-11-2006 à 13:42:17    

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)
Reply

Marsh Posté le 03-11-2006 à 13:59:27    

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)

Reply

Marsh Posté le 04-11-2006 à 10:46:29    

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

Reply

Marsh Posté le 04-11-2006 à 15:35:57    

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


---------------
.
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed