CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[LangageC] Structure/strtok

bouche
bouche
Niveau 10
27 novembre 2011 à 18:14:21

Bonjour à tous!
Aujourd'hui, petit retourne cerveau à vous proposer.
Je possède une structure avec 4-5composantes. La structure sera utilisée de nombreuses fois (ajouter de nouvelles personnes/objets définies par la structure)
Bref, la personne lance le programme, et on lui demande d'entrer une phrase, exemple:
Nouveau jouet bleu 100€ (a titre d'exemple)

Imaginons que la structure comporte
-type
-couleur
-prix

Je dois tout d'abord diviser le tout en différentes chaines de caractères. pour que le programme reconnaisse par la suite le "nouveau", attribuer "jouet" dans la structure comme "type", "bleu" comme couleur etc.

Le problème, c'est que j'utilise strtok de la façon suivante:
test = strtok(choix, " "); //Test fait la séparation, c'est un pointeur.
printf("%s\n",test);
test= A; //Une fois la séparation effectuée, on reprend depuis la fin de la séparation précédente?
test = strtok(A, " ");
printf("%s\n",A);

etc..en faisant nouveau(test) puis jouet(A) puis couleur (B) puis prix (C)
Déjà, c'est problématique, ca ne fonctionne pas de cette manière, j'affiche pour voir si ca a bien séparer, et ca s'arrête après test.

Deuxième problème, comment faire pour raccorder la chaine de caractères récupérée (test, A ,B,C..) à l'intérieur des structures?
strcpy(A->type); ? cela suffirait? (surtout si on veut ajouter disons 10 jouets, cela ne va pas se chevaucher?)

En ce qui concerne le strtok j'ai trouvé, c'est bon, c'est juste que pour les espaces et bien, le programme ne veut pas.
Je dois donc allouer chaque chaîne créer pour la structure et là... Mystère.

bouche
bouche
Niveau 10
29 novembre 2011 à 16:26:04

:up:

the_huntress
the_huntress
Niveau 35
29 novembre 2011 à 17:47:10

Tu fais une liste chainée de structure. A chaque ajout d'objet par l'utilisateur tu alloue une nouvelle structure qui est ensuite placée dans la liste.

Je comprends pas bien ton problème, en même temps ton énoncé est pas du tout clair, tu viens avec ta fonction. Déjà pose toi le problème de manière logique avant de chercher une fonction ou à coder. Pose ton pb sur papier de manière logique et regarde comment procéder.

bouche
bouche
Niveau 10
29 novembre 2011 à 22:40:18

C'est déjà fait.
Je dois découper la saisie en différentes parties. => strtok
Ensuite j'analyse le premier mot "nouveau" (par exemple), je lance la fonction "nouveau_jouet" (encore par exemple)
Ensuite je reprends la commande entrée par l'utilisateur.
Je dois découper mot par mot, ce qui est faisable.
decoupage = strtok(decoupage," ");
while (decoupage != NULL)
{
for(i=0;i<6;i++)
{

printf("%d:%s\n",i, decoupage);
decoupage = strtok(NULL," ");
}

}
Vous serez d'accord que si je rentre: nouveau jouet bleu grand (exemple)
0: nouveau
1:jouet
2:bleu
3:grand

Je voudrais maintenant prendre chacun des mots sauf 0 et les mettre dans la structure et dire que ca correspond à un jouet 1

structure comportant:
{
char type;
char couleur;
char taille;
}

bouche
bouche
Niveau 10
01 décembre 2011 à 22:14:44

Bon, j'ai réussi à attribuer chaque saisie utilisateur dans la structure. Maintenant j'aimerais savoir comment faire pour que je rassemble chaque structure créée dans un "tableau de structure" ce qui est assez flou.
De plus... J'ai une valeur de taille (en int) j'arrive pas a prendre la valeur saisie. (strcpy ne peut pas marcher, c'est un nombre)

the_huntress
the_huntress
Niveau 35
01 décembre 2011 à 23:24:26

Fais une liste chainée.

bouche
bouche
Niveau 10
02 décembre 2011 à 18:35:51

On m'a donné comment faire pour saisir le int et pour pouvoir afficher et saisir de nombreuses structures.

Sinon, certains ont utilisés des listes chainées, j'ai lu le cours à ce sujet (siteduzero) mais quoi qu'est ce?

bouche
bouche
Niveau 10
04 décembre 2011 à 17:06:09

:up:

Sous forums
  • Métiers & Orientation
  • Histoire
  • Politique
  • Cours et Devoirs
  • Environnement & Nature
  • Philosophie
La vidéo du moment