begin process at 2012 05 28 23:01:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

conversion string et char, probleme


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

conversion string et char, probleme

mercredi 11 novembre 2009 à 11:42:45 | conversion string et char, probleme

flowneo

Bonjour,

soit le code suivant, qui convertit une chaine string en char:

#include <string>
#include <iostream>
#include <cstring>
using namespace std;

int main (){

string combiJoueur1;
cout<<"entrer mot";
cin>>combiJoueur1;

string str =combiJoueur1;
size_t size = str.size() + 1;
char * buffer = new char[ 3];
strncpy( buffer, str.c_str(), 3);
cout << buffer << '\n';
delete [] buffer;


system ("pause");
return 0;
}

le seul probleme que je rencontre c'est que le programme me ressort bien le mot que j'ai rentré mais avec un "-" en plus...(si je rentre joue il me ressort joue-).

Quelqu'un pourrait-il m'aider ?

Merci à ceux qui me donneront un peu de leur temps, merci beaucoup !
mercredi 11 novembre 2009 à 11:53:46 | Re : conversion string et char, probleme

CptPingu

Administrateur CodeS-SourceS
Heu, à quoi ça sert de faire cela ?

Sinon, pour ton problème, c'est tout simplement que tu essaies de faire rentrer un mot de 4 lettres dans un "char*" qui en possède 2 (2 + 1 pour le zéro terminal).

Code C/C++ :
#include <iostream>
#include <cstring>

int main ()
{
  std::string combiJoueur1;

  std::cout << "Entrer mot: ";
  std::cin >> combiJoueur1;

  size_t size = combiJoueur1.size() + 1;
  char* buffer = new char[size];
  strncpy(buffer, combiJoueur1.c_str(), size);
  std::cout << buffer << std::endl;
  delete[] buffer;

  // Qu'est ce qui t'empêche de faire:
  std::cout << combiJoueur1.c_str() << std::endl;

  // Ou mieux encore:
  std::cout << combiJoueur1 << std::endl;

  return 0;
}
mercredi 11 novembre 2009 à 16:34:34 | Re : conversion string et char, probleme

flowneo

en faite je doit faire un programme comme le jeu du mastermind, je voulais donc convertir le string en char pour pouvoir aprés comparer chaque caractére avec la combinaison du joueur 1 par exemple..

Dans tes réponses, je ne comprends pas toujours le code que tu saisie car je ne suis que débutant et je n'utilise pas les mêmes méthodes, un peu de mal des fois à comprendre...desolé
mercredi 11 novembre 2009 à 16:38:09 | Re : conversion string et char, probleme

CptPingu

Administrateur CodeS-SourceS
Pour accéder à un caractère d'un std::string, tu peux faire:

Code C/C++ :
std::string s = "Coca";

// s[1] te permet d'accéder à 'o'
std::cout << s[1] << std::endl;


Inutile de convertir cela en char* !
mercredi 11 novembre 2009 à 17:08:50 | Re : conversion string et char, probleme

flowneo

ok, je vais essayer, merci beaucoup pour toute l'aide que tu m'apporte
mercredi 11 novembre 2009 à 17:11:05 | Re : conversion string et char, probleme

flowneo

saurais tu également comment empêcher le joueur de rentrée 2 fois la même lettre ?
mercredi 11 novembre 2009 à 17:38:56 | Re : conversion string et char, probleme

flowneo

je voudrais faire une fonction ou une procédure qui reprenne par exemple la variable string essaisJoueur qui contient la saisie de l'utilisateur mais le probleme c'est que je ne sais pas comment lui dire de reprendre la valeur de essaisJoueur
jeudi 12 novembre 2009 à 11:31:04 | Re : conversion string et char, probleme

CptPingu

Administrateur CodeS-SourceS

saurais tu également comment empêcher le joueur de rentrée 2 fois la même lettre ?



Tu ne peux pas l'en empêcher. A toi de vérifier que la chaîne obtenu ne contiennent pas de doublon.


je voudrais faire une fonction ou une procédure qui reprenne par exemple la variable string essaisJoueur qui contient la saisie de l'utilisateur mais le probleme c'est que je ne sais pas comment lui dire de reprendre la valeur de essaisJoueur



Oula. Je t'invite à revoir les bases. Essaie de voir sur des sites du genre "Le site du zéro". Il y a plein de tutoriaux faciles d'accès.

Code C/C++ :
#include <iostream>

void fonction(const std::string& s)
{
  std::cout << s << std::endl;
}

int main()
{
  std::string essaieJoueur;

  std::cout << "Nom joueur: " << std::endl;
  std::cin >> essaieJoueur;
  fonction(essaieJoueur);

  return 0;
}


Cette discussion est classée dans : buffer, string, probleme, str, char


Répondre à ce message

Sujets en rapport avec ce message

probleme avec une chaine de caractere [ par joben22 ] Bonsoir, j'ai un petit soucis avec une fonction que j'essaie de coder. En fait, je lis le contenue d'un fichier, le place dans un char* et la j'aimer char* -> string [ par oRTEEZ ] Voila tout est dans le sujet.En fait j'ai un nom de fichier dans un buffer et j'aimerai ajouter des caractere au nom.ex: *buffer = "voila.jpg"apres tr Probleme Comparaison deux chaines de caracteres [ par Coxis ] Salut,Bon c pas compliqué j'ai 2 tableaux de caracteres de tailles differentes, je veux les comparer mais ca marche pas...En fait a la base je voulais trouver un char dasn une string et le convertir... [ par Spiffou ] bonjour à tous, je suis bloqué sur un problème de C++ avec les strings et les vectors. j'ai un vector contenant des std::string, et je souhaiterais e string.h, c_str() & char* [ par MyXiLo ] Bonjour,Il y a un petit quelque chose que je ne comprends pas avec les std::string de string.hstd::string Pouet="LALALALa";pr copier une valeur dans une structure [ par Kurpeus1 ] Bonjour, désolé de reposer la question mais j'ai un soucis depuis plusieurs jour et je n'arrive pas a le résoudre. Il me semble pourtant que pour un d probleme malloc !! [ par Vinsininounet ] Bonjour a tous,J'ai un probleme TRES bizzarre :quand je fait :char* pointeur;pointeur = malloc(sizeof(char)*1000);sa me met :invalide conversion de vo Trouver un string avant un autre string [ par gm__ ] Salut!J'aimerais savoir comment faire pour verifier si  un string se trouve just avant un autre.J'utilise string::rfind() pour chercher à l'envers, se Cherecher dans un string [ par gm__ ] Bonjour!Je suis en train de faire un programme qui ouvre un fichier et met en majuscule toute les lignes et certaines caracters.J'aimerais le faire st


Nos sponsors


Sondage...

Comparez les prix

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 : 0,296 sec (4)

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