begin process at 2012 05 30 19:18:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

trouver une sous chaine dans une chaine


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

trouver une sous chaine dans une chaine

mercredi 16 mars 2005 à 13:08:58 | trouver une sous chaine dans une chaine

avprive

Bonjour

je souhaite trouver une sous chaine dans une chaine qui a des separateurs

ma chaine est  ;xpos=10,4;ypos=11,2;zpos=3,6;

et je souhaite morceler ma chaine pour avoir les sous chaines entre les separateurs ";"

et avoir mot1="xpos=10"
             mot2="ypos=11,2"
             mot3="zpos=3,6"

mot1 mot2 et mot3 etant des chaine de caracteres


je sais que en php on peut faire ceci
si on appelle ExtractChamp("essai;test",1,";"), ça renvoie "essai".
si on appelle ExtractChamp("essai;test;toto",3,";"), ça renvoie "toto".

en faite je souhaiterais faire ca en c++

mille merci

mercredi 16 mars 2005 à 16:56:00 | Re : trouver une sous chaine dans une chaine

jul39dole

strrchr recherche un caractère dans une chaine, il te suffit de rechercher les ";" pour ensuite placer ce qu'il y a entre dans tes variables mot.

mercredi 16 mars 2005 à 17:38:45 | Re : trouver une sous chaine dans une chaine

avprive

desolé mais
je vois pas trop comment l utiliser car une fois que je connais la possition de ";" comment je donne a mon mots la valeurs entre les 2 ";"
mercredi 16 mars 2005 à 17:51:06 | Re : trouver une sous chaine dans une chaine

jul39dole

et bien je te propose une solution (qui n'utilise pas strrchr ;-) :

char chaine[]=";xpos=10,4;ypos=11,2;zpos=3,6;";
char mot[3][20];
int a=0, pos=1;
for(int i=1; i<strlen(chaine); i++)
{
   if(chaine[i]==';')
   {
      //on a repéré la fin du mot
      for(int k=pos; k<i; k++)
            mot[a][k-pos]=chaine[k];
      mot[a][i-pos]='\0';
      pos=i+1;
      a++;
      }
}

jeudi 17 mars 2005 à 11:01:21 | Re : trouver une sous chaine dans une chaine

SnOOpss

Si tu as toujours 3 "sous chaines " tu peux faire

data = "xpos=10,4;ypos=11,2;zpos=3,6";
    char mot1[0xFFF],mot2[0xFFFF],mot3[0xFFFF];

    wsprintf(mot1,"%s",strtok(data,";"));
    wsprintf(mot2,"%s",strtok(NULL,";"));
    wsprintf(mot3,"%s",strtok(NULL,";"));

Sinon utlise cette fonction

char* gettok(char *data, int pos, char *C, int all)
{
    char*  Token;
    int    i;
    char data2[1024];
    lstrcpy(data2,data);
    Token = strtok(data2,C);
    for (i = 1; Token && (i < pos); i++) {

      if (i == (pos-1) && all) return strtok(NULL,"");
      else Token = strtok(NULL,C);
    }
    if (all) return strtok(data,"");
    //if (!Token)
    //  lstrcpy(Token,"\0");
    return Token;
}


Cette discussion est classée dans : trouver, chaine, essai, souhaite, separateurs


Répondre à ce message

Sujets en rapport avec ce message

Trouver l'indice d'un caractère dans une chaine de caractères [ par new0staff ] Bonjour tout le monde!Je cherche une fonction qui me permet de trouver l'indice d'un caractère dans une chaine de caractère.J'ai utilisé une boucle qu Conversion vers hexa [ par chrisotphe7502 ] Bonjour, mon problème est le suivant, je souhaite convertir une chaine en hexa. La chaine de caractère est de la forme 01020304 et je souhaite envoye fonction trouver et remplacer [ par sousi ] realiser une fonction trouve permettant de trouver une chaine de caractere dans un fichier texte et une fonction remplace pour remplacer la chaine par Trouver la position d'un caractère dans une chaine [ par katerson ] Bonjour, J'aimerai avoir votre avis sur le problème suivant : Ma chaine se formatte de la façon suivante: "RD-AAA=?" - AAA étant 3 lettres variables Trouver un mot dans une chaine en C (urgent) [ par Buzu ] Salut!Voila : y a t-il une fonction en c qui permette de dire s'il y a un mot dans une chaine ou pas?Par exemple la chaine "Bonjour je suis moi" et je Chaine de caractères oubliée [ par Venusos ] Hello les gens =) Ma prof de dev m'ayant donné comme devoir de grosbill pour les vacances (ouais parce-qu'elle veut quand-même un peu me tester vu qu Probleme Erreur de segmentation [ par sivas58 ] [color=red]Bonjour a tous; J'ai besoins d'aide sur une erreur de segmentation.[/color] [code=cpp]int decoupeLignePipe(char *chaine,char **commande1, chaine de caractere en hexa [ par virtuoze ] Bonjour à tous , j'aimerais dans un algo en c ou c++ demander a un utilisateur de rentrer un chaine de caractère en hexa pour que je puisse aprés rent Serveur C [ par andoid ] Bonjour voici le squellete de mon serveur j'ai un probléme pour envoyer des messages au faite je suis entrain de teste donc je veut envoyer la même ch base de donnee / ado / et liste chaine [ par callaghan1981 ] hello a ts..j ai un petit bleme..jarrive a me connecter a une base de donne, de consulter la baseet je desire now mettre tt les champs dune table ou r


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,998 sec (3)

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