Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : nombre du mot d'une chaine [ Windows / MFC ] (mqsi)

lundi 5 février 2007 à 16:12:13 | nombre du mot d'une chaine

mqsi

bsr a tous,
j'ai une chaine dynamique de ce type :  str = "aaa;bbb;ccc;ddd" , je cherche a calculer le nombre du mot de la chaine;
et merci d'avance .

lundi 5 février 2007 à 16:38:05 | Re : nombre du mot d'une chaine

yoyo269

Membre Club
Salut mqsi !

C'est assez simple. Si tes mots sont séparés par des point virgules, essaie ceci :
char str[] = "aaa;bbb;ccc;ddd";
char* c = str;
int NbMots = 0;
while(*c)
{
   if(*c == ';') NbMots++;
   c++;
}

Pas vérifié, mais ça devrait passer.

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]


lundi 5 février 2007 à 17:11:51 | Re : nombre du mot d'une chaine

mqsi

merci pr la reponse ,mais ne marche pas

lundi 5 février 2007 à 17:16:00 | Re : nombre du mot d'une chaine

yoyo269

Membre Club
Ton str est bien un char ?

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]


lundi 5 février 2007 à 17:18:30 | Re : nombre du mot d'une chaine

yoyo269

Membre Club
Sinon à première vue je ne vois pas pourquoi ça ne marche pas.
Juste une petite chose, fais :
NbMots++;

à la fin après le while, sinon tu auras le nombre de points virgules et pas le nombre de mots.

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]


mardi 6 février 2007 à 00:59:37 | Re : nombre du mot d'une chaine

BruNews

Administrateur CodeS-SourceS
";;;"
yoyo il manque une info dans ta boucle sinon tu vas nous retourner 4 alors que doit être 0.

ciao...
BruNews, MVP VC++

mardi 6 février 2007 à 09:33:17 | Re : nombre du mot d'une chaine

yoyo269

Membre Club
Merci BruNews !

Effectivement tu vois très bien les cas particuliers.
Donc mqsi, comme l'a signalé BruNews, si le cas particulier où aucun mot n'existe entre 2 ';' est possible dans ton programme, adapte le en conséquence.
Sinon tu peux le prendre tel quel !

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]


mercredi 7 février 2007 à 18:18:39 | Re : nombre du mot d'une chaine

yohan49

Membre Club
voici comment tu peux decouper ta phrase et recuperer chaque mot separe par ';'

char **list_des_mots(char *source,char sep)
{
   char **result = (char**)malloc(1);
   char *final = (char*)calloc(256,1);
   int n_elem = 0;
   int pos_in_final = 0;
   char c = 0;
   while(c = *source++)
   {
      if(c == sep)
      {
         if(pos_in_final)
         {
            result = (char**)realloc(result,sizeof(result) * (n_elem + 1));
            result[n_elem] = (char*)calloc(strlen(final) + 1, 1);
            strcpy(result[n_elem++],final);
            result[n_elem] = NULL;
         }
         pos_in_final = 0;
         continue;
      }
      final[pos_in_final++] = c;
      final[pos_in_final] = 0;
   }
   free(final);
   return result;
}

int main()
{
   char *source = "test1;test2;test3;test4";
   char **result = list_des_mots(source,';');
   int n = 0;
   while(result[n])
      printf("%s\n",result[n++]);
  
   /** liberation obligatoire des elements dans result **/
   n = 0;
   while(result[n])
      free(result[n++]);
}

je viens de taper cela au pif sans tester , ca devrait etre bon



Cette discussion est classé dans : nombre, mot, chaine


Répondre à ce message

Sujets en rapport avec ce message

compteur de chaine de caractere [ par yous1984 ] salut je suis debutant en C++ je voudrais s'avoir ce que je dois faire pr avoir un compteur qui compte le nombre maximum de caractere B consécutif da Chaine de caracteres [ par youssef22 ] Bonjour,Je suis entrain d'ecrire un petit programme qui genere a chaque fois un mot, et affiche le mot sous forme de tirets, et demande a l'utilisateu Problème avec la fonction atof() [ par programmateur ] Je cherche à transformer une chaine de charactères se terminant par NULL en une valeur de type double, le type de code que j'utilise :(sans les includ Premier mot d'une chaine [ par daivil ] Bonsoir tout le monde,Je dois réaliser une fonction qui a le prototype suivnat :char *Premier (const T_Chaines ch);Et cette fonction doit me retourner Supprimer un mot d'une chaine [ par daivil ] Bonjour à tous les amis codeurs ^^Aujourd'hui j'ai un petit problèmeJ'aimerais créer une fontion récursive qui enlève un mot d'une chaine selon le pro arf j y arrive po (chaine de carac) [ par mouss24 ] Voila je cherche a faire un algo qui me sort le nombre d iteration d un nombre dans une chaineex : j ecris3 5 4 6 7 55 345 8 5 4 5 55 3 3et il me sort Strcat avec un chiffre entier [ par Athanor ] Je voudrais concaténer une chaine avec un nombre entier, je sais bien questrcat(nomchaine, 123);ne marche pas, mais même en transformant mon chiffre e 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 rechercher un mot dans une chaine de caractere [ par meloo ] Bonsoir,J'ai un petit programme à faire en C++ qui n'est pas très dur de prime abors. Le seul probleme est que je n'ai pas le droit d'utiliser de fonc liste chainée [ par skulls94 ] bonjour, je dois faire un  programme qui lit un fichier mot à mot et qui les stocke dans une liste chainée seulement si ils ne sont pas deja present.v


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.