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

  FORUM HardWare.fr
  Programmation
  C++

  chaine de caractere

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

chaine de caractere

n°510471
zouzouille
Posté le 08-09-2003 à 21:06:04  profilanswer
 

Quand je rentre dans un string 3+2
j'aimerai qu'il en fasse l'addition mais comme c'est un string il ne sait pas.Faut il que je le mette dans un tableau (strcpy) puis parcourir mon tableau??? quelqu'un pourrait il m'aider.

mood
Publicité
Posté le 08-09-2003 à 21:06:04  profilanswer
 

n°510474
chrisbk
-
Posté le 08-09-2003 à 21:08:33  profilanswer
 

toi t'es mort si taz passe par la :D
 
C++ et string = std::string et pas char *
 
pour ton pb c plus compliqué que ca

n°510478
zouzouille
Posté le 08-09-2003 à 21:12:28  profilanswer
 

On apprend alors que veut tu de mieu lol.
 

n°510487
chrisbk
-
Posté le 08-09-2003 à 21:20:56  profilanswer
 

kikoo

n°510489
polo021
Posté le 08-09-2003 à 21:23:50  profilanswer
 

zouzouille a écrit :

Quand je rentre dans un string 3+2
j'aimerai qu'il en fasse l'addition mais comme c'est un string il ne sait pas.Faut il que je le mette dans un tableau (strcpy) puis parcourir mon tableau??? quelqu'un pourrait il m'aider.


etant donné que tu apprends et qu'on ne recherche dans ton cas ni la perfection, ni le bon gout mais plutot la manipulation de tableaux de caractères je suppose, oui c'est comme ca que tu dois faire.

n°510496
Taz
bisounours-codeur
Posté le 08-09-2003 à 21:32:35  profilanswer
 

[:taz]

n°510543
didier1809
${citation_perso}
Posté le 08-09-2003 à 22:23:11  profilanswer
 

ho, 3 (ex ? polo  :hello: )jemellois ici  :whistle:


---------------
.
n°510657
skeye
Posté le 09-09-2003 à 07:29:54  profilanswer
 

Didier1809 a écrit :

ho, 3 (ex ? polo  :hello: )jemellois ici  :whistle:  


C'est quel langue ça? :heink:

n°510716
LetoII
Le dormeur doit se réveiller
Posté le 09-09-2003 à 10:05:43  profilanswer
 

Si j'ai bien compris tu veux avoir une chaîne du style "5" avec comme point de départ 3+2, si c ça regarde du côté de sstream et de string


---------------
Le Tyran
n°510733
Joel F
Real men use unique_ptr
Posté le 09-09-2003 à 10:22:03  profilanswer
 

hmmm et aussi ecrire un interpreteur d'expression arithmetique.
 :whistle:  
 
Faut construire un arbre binaire a partie de l'expression, effectuez une conersion '5' => 5 et reconstruire via des foncteurs les opérations : '+' => func_plus.

mood
Publicité
Posté le 09-09-2003 à 10:22:03  profilanswer
 

n°510739
Taz
bisounours-codeur
Posté le 09-09-2003 à 10:27:20  profilanswer
 

LetoII a écrit :

Si j'ai bien compris tu veux avoir une chaîne du style "5" avec comme point de départ 3+2, si c ça regarde du côté de sstream et de string

stringstream

n°510743
LetoII
Le dormeur doit se réveiller
Posté le 09-09-2003 à 10:31:04  profilanswer
 

Joel F a écrit :

hmmm et aussi ecrire un interpreteur d'expression arithmetique.
 :whistle:  
 
Faut construire un arbre binaire a partie de l'expression, effectuez une conersion '5' => 5 et reconstruire via des foncteurs les opérations : '+' => func_plus.


 
Ben non, il a des int à la base, enfin c ce que j'ai compris
 
 

Taz a écrit :

stringstream


 
 Heu nan je confirme que la bibliothéque s'appelle sstream, après effectivement l'objet désiré s'appel stringstream :D


Message édité par LetoII le 09-09-2003 à 10:35:58

---------------
Le Tyran
n°510763
zouzouille
Posté le 09-09-2003 à 10:56:09  profilanswer
 


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream.h>
 
int main(int argc ,char *argv[],char *envp[])  
  {  
 char temp[10];
 char *nb1;
 char *nb2;
 int nbr1,nbr2,tot;
 nbr1=0;
 nbr2=0;
 tot=0;
     if (argc < 2)
  {  
   cout << "Il n'y a pas asser de parametre" << endl;
        return -1;
     }
     if (strcmp(argv[1], "2" ) == 0)
  {  
        strcpy(temp,argv[2]);
 
  for (int i=0;temp[i]!='0';i++)
  {
   if (temp[i]=='*')
   {
    nb1 = &(temp[i-1]);
    nbr1=atoi(nb1);
    nb2 = &(temp[i+1]);
    nbr2=atoi(nb2);
    tot=nbr1*nbr2;
    cout << tot << endl;
   }
   
  }
  }
     else  
  {
        cout << "Numero correspond pas(1 ou 2 ou 3)" << endl;  
     }
     return 0;  
  }  
 

n°510766
zouzouille
Posté le 09-09-2003 à 10:56:40  profilanswer
 

Quelqu'un pourrais me dire comment faire pour plus de 1 caractere??? Avec string sa va pas

n°510779
VisualC++
J'va y penser ...
Posté le 09-09-2003 à 11:10:27  profilanswer
 

un truc du style
 

Code :
  1. string sArg = argv[2];
  2. string::size_type pos = (string::size_type)-1;
  3. if ((pos = sArg.find("*", 0)) != (string::size_type)-1) {
  4. int iOp1 = atoi(sArg.substr(0, pos).c_str());
  5. int iOp2 = atoi(sArg.substr(pos, pos+strlen("*" )).c_str());
  6. int iResult = iOp1 * iOp2;
  7. cout << "Result = " << iResult << endl;
  8. }


 
ou un sscanf sur le sArg.substr suivant si atoi dispo ou pas.


Message édité par VisualC++ le 09-09-2003 à 11:12:09
n°510797
LetoII
Le dormeur doit se réveiller
Posté le 09-09-2003 à 11:31:11  profilanswer
 

Plutôt un truc comme ça:

Code :
  1. #include <string>
  2. #include <sstream>
  3. using namespace std;
  4. int main(int argc,char** argv)
  5. {
  6.    if(argc >=3)
  7.    {
  8.       stringstream op1(string(argv[1]),stringstream::in);
  9.       stringstream op2(string(argv[2]),stringstream::in);
  10.       int i,j;
  11.       op1 >> i;
  12.       op2 >> j;
  13.       stringstream result(stringstream::out|stringstream::in);
  14.       result << i*j;
  15.       cout << result.str() << endl;
  16.    }
  17.    return 0;
  18. }


 
Edit: oublié le return  :whistle:


Message édité par LetoII le 09-09-2003 à 11:34:44

---------------
Le Tyran
n°510821
VisualC++
J'va y penser ...
Posté le 09-09-2003 à 11:45:07  profilanswer
 

Oui mais moi c t juste pour son bout de code qui ne gerait pas les +1 char ;)

n°510947
Taz
bisounours-codeur
Posté le 09-09-2003 à 14:04:40  profilanswer
 

Merci Letto, juste 2 trucs:
 - stringstream( ..., ...::in) -> istringstream
 - return 0 facultatif
 
 
VC, je veux plus te voir ici avec tes réponses à la noix. Vas faire du C ailleurs parce que j'assimile ça à du pourrissage de sujet.
 
zouzouille > ton code tu peux l'effacer toi-même, mais vu comme il est mauvais, c'est une bonne technique de guerre que de laisser pomer par les autres.

n°510954
LetoII
Le dormeur doit se réveiller
Posté le 09-09-2003 à 14:15:58  profilanswer
 

Taz a écrit :

Merci Letto, juste 2 trucs:
 - stringstream( ..., ...::in) -> istringstream
 - return 0 facultatif


 
Moi c LetoII et pa Letto  :whistle: (t'inquiéte j'ai l'habitude on me l'écorche tout le temps ce nickname ;))
 
Perso moi quand j'ai une fonction qui renvoie un int, j'aime bien qu'il y ai un return qq part mais bon c une histoire de goût :D
 

Taz a écrit :


zouzouille > ton code tu peux l'effacer toi-même, mais vu comme il est mauvais, c'est une bonne technique de guerre que de laisser pomer par les autres.


 
 :lol:  [:grinking]


---------------
Le Tyran

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

  chaine de caractere

 

Sujets relatifs
Déclarer une variable globale à partir d'une chaine de caractère ?[batch dos] rempacler une chaine de caractere dans un fichier
[c] Couper une chaine de caractere en 2 [RESOLU]prob: getimagesize() et chaîne de caractère
Split d'une chaine en fonction du nombre de caractereAnalyse d'une chaine de caractere...
variable - chaine de caractère[C ANSI] conversion chaine de caractere <=> float ou double
sscanf et la saisie d'une chaine de caractèrechaine de caractere avec "
Plus de sujets relatifs à : chaine de caractere


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