Traiter une chaine en c++

Signaler
Messages postés
37
Date d'inscription
vendredi 10 septembre 2004
Statut
Membre
Dernière intervention
21 avril 2007
-
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
-
Salut, je veux me faire un petit programme qui fonctionne en ligne de commande, donc lutilisateur écrit en mode console : solve(x-2=0, x) et le programme coupe sa pour voir qu'il faut qu'il execute la fonction solve, que la formule est x-2, que cest égal à 0 et que l'inconnu est x.

Mais voila, j'ai commencé mais j'ai vraiment de la difficulté, je ne sais même pas comment faire exactement une string (j'ai fait un char test[250] mais sa marche plus ou moins]. Pouvez-vous m'aider pour déclarer ma string et la découper?

3 réponses

Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
C'est pas facile lol :)

Déja faut découpé les arguments :



Alors on suppose que la ligne de commande est ::

char szCommande[] = "x-2=0, x";



On va découper les 2 parties :



char szCommande[] = "x-2= 0,x";



char *PartieAvant, *PartieApres;

int iTaille = strlen(szCommande);

int iIndex = 0;



char *c = szCommande;



while(*c != ',')

{

iIndex++;

c++;

}



PartieAvant = ( char *)malloc(iIndex+1);

strncpy(PartieAvant, szCommande, iIndex);

PartieAvant[iIndex] = 0;



PartieApres = ( char *)malloc(iTaille-iIndex+1);

strncpy(PartieApres, szCommande + iIndex + 1, iTaille - iIndex);

PartieApres[iTaille-iIndex] = 0;



Voila tes chaines sont découpées :

PartieAvant : x-2=0

PartieApres : x



Maintenant bonne chance pour évaluer le tout lol

if(!Meilleur("Joky")) return ERREUR;
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Biensur à la fin ne pas oublier les free(PartieAvant) et free(PartieApres) qui accompagnent les malloc :)
if(!Meilleur("Joky")) return ERREUR;<
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Au faite ! C'est pas du C++ que j'té donné la, c'est du C mais bon :)

if(!Meilleur("Joky")) return ERREUR;<