Découper chaine (débutant)

Résolu
cs_MATHIS49 Messages postés 368 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 14 mai 2010 - 22 sept. 2005 à 16:05
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 - 22 sept. 2005 à 18:41
Bonjour,



Etant gros débutant en C++ je me suis lancé dans la programmation d'un morpion.



Ainsi je demande aux utilisateur d'entrer les coordonnées du pion de cette facon , exemple: 2-3.



J'aimerais savoir s'il existait un truc pour mettre par exemple 2 dans la variable X et 3 dans la variable Y ?



Merci

9 réponses

cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
22 sept. 2005 à 16:54
bonjour,

pour ta fonction, moi, je ferai :

2-3 = chaine

char str[] = "2-3";
char * pch;
char * pch2;
pch = strchr(str,'2');
pch2 = strchr(str, '3');

mais va lire ca, tu verra, tu comprendra mieux tout ce qui est manipulation de caracteres avec la librairie standard

http://www.cplusplus.com/ref/cstring/index.html


event.Voila();
@+;
ROOT_DIEU Alias satellite34
3
cs_MATHIS49 Messages postés 368 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 14 mai 2010 1
22 sept. 2005 à 17:20
Merci !

Mais j'ai trouvé une fonction qui faisait ça :



La fonction :



vector<string> stringSplit (string text, string separators)

{

int n = text.length();

int start, stop;


vector<string> words;



start = text.find_first_not_of(separators);

while ((start >= 0) && (start < n)) {

stop = text.find_first_of(separators, start);



if ((stop < 0) || (stop > n)) stop = n;



words.push_back(text.substr(start, stop - start));

start = text.find_first_not_of(separators, stop+1);

}



return words;

}





Lancement de la fonction :




vector<string> temp = strinSplit(monResultat, "-"); x=atoi(temp[0]);y=aoti(temp[1]);





Merci à nojhan pour cette fonction
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 sept. 2005 à 18:02
ben si t'es content avec cette usine à gaz qui va mettre 8 Ko de STL dans ton exe alors qu'on le fait en 6 lignes de code avec 1 pointeur, tant mieux mais c'est tout de même pas le top.

ciao...
BruNews, MVP VC++
0
cs_MATHIS49 Messages postés 368 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 14 mai 2010 1
22 sept. 2005 à 18:16
Il ne faut pas se vexer, je trouve que les 2 solutions ont leurs inconvenients et leurs avantages.



Et perso, dans ce cas précis c'est vrai que la solution de satellite
est plus legere et moins compliqué et c'est pour cela que je vais
l'utiliser.



Merci pour votre aide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
22 sept. 2005 à 18:21
erf, a mon avis , on n' utilise pas les vectors pour découper un string!!!!!
Ma solution n'est pas la meilleure pour toi mais va sur le lien précédemment posé et tu trouvera ton bonheur avec de la performance.

event.Voila();@+;ROOT_DIEU Alias satellite34
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 sept. 2005 à 18:32
char entree[24];
char *c;int x 0, y 0;

Disons que tu as récupéré dans 'entree':
x = atoi(entree);
c = entree;
while(*c) {
if(*c == '-') {
y = atoi(c + 1);
break; // on quitte la boucle while
}
c++;
}

ciao...
BruNews, MVP VC++
0
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
22 sept. 2005 à 18:34
Voila, lol, brunews est moins flemard que moi

mdr

event.Merci();@+;ROOT_DIEU Alias satellite34
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 sept. 2005 à 18:38
y a juste que j'aurais aimé que MATHIS49 essaie de le faire.

ciao...
BruNews, MVP VC++
0
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
22 sept. 2005 à 18:41
Oui c'est sur, mais dans l' absolu nous ne savons pas ce qu' il est en train de faire !Autant, il se casse l tete sur la stl actuellement et surement(j'espere) que ton exemple lui servira de support;
Et quel support!

event.Voila();
@+;
ROOT_DIEU Alias satellite34
0
Rejoignez-nous