Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2420 connectés 

  FORUM HardWare.fr
  Programmation
  C

  passage tableau à tableau avec boucle for

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

passage tableau à tableau avec boucle for

n°1524534
aneurysm
Posté le 06-03-2007 à 16:49:58  profilanswer
 

HELLO ALL :hello:  
 
voila j'aurai besoin de votre aide sur un sujet :
 j'ai un tableau de charactère de type:
tab1[10]={pomme}
et je souhaiterai mettre les charactères de ce tableau dans un 2ème :
tab2[10]={}
mais en rajouter chaque characteres entre quote et avec une virgule donc :
tab2[10]={'p','o','m','m','e'}
il faut une boucle for mais aprés 400 ou 500 cheveux arrachés je vien  demander de l'aide
voila si vous avez des idées .
merci d'avance  

mood
Publicité
Posté le 06-03-2007 à 16:49:58  profilanswer
 

n°1524541
MEI
|DarthPingoo(tm)|
Posté le 06-03-2007 à 16:57:17  profilanswer
 

En java ca donnerais un truc du genre :

Code :
  1. char[10] tab1 = "pomme";
  2. char[4 * length(tab1)] tab2;
  3. for (int i = 0 ; i < length(tab1) ; i++) {
  4.    tab2[4 * i] = '''';
  5.    tab2[(4 * i) + 1] = tab1[i];
  6.    tab2[(4 * i) + 2] = '''';
  7.    tab2[(4 * i) + 3] = ',':     
  8. }
 

Mais comme j'ai pas bien compris ce que tu voulais vraiment faire...   :lol:

Message cité 1 fois
Message édité par MEI le 06-03-2007 à 17:34:15

---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1524545
Elmoricq
Modérateur
Posté le 06-03-2007 à 17:01:06  profilanswer
 

aneurysm a écrit :

il faut une boucle for mais aprés 400 ou 500 cheveux arrachés je vien  demander de l'aide


 
Si tu veux le faire à la main, c'est assez simple.
Montre-nous le code que tu as créé pour voir où tu en es, on t'aidera à partir de là.
 
Surtout que j'imagine que c'est pour un exercice, sinon tu utiliserais strcpy()... non ? :o
 

MEI a écrit :

En java ca donnerais un truc du genre


 
http://images.imagehotel.net/a89ebe3166.png

n°1524548
aneurysm
Posté le 06-03-2007 à 17:03:11  profilanswer
 

nan carrement pas c'est pour mon projet bts, je dois rajouter les quotes et les virgules pour pouvoir envoyer sur un afficheur LCD. mmm strcpy()?? c'est quoi ca?

n°1524551
Elmoricq
Modérateur
Posté le 06-03-2007 à 17:04:35  profilanswer
 

man strcpy
 
en ligne de commande sur un unixoïde, ou dans google ça marche aussi

n°1524561
MEI
|DarthPingoo(tm)|
Posté le 06-03-2007 à 17:07:23  profilanswer
 


J'suis pas fan des allocation dynamique, mais ici le pb est plus algorythmique qu'autre chose. :D

 

Suffit de remplacer les tab1.length en length(tab1) et de savoir allouer un tableau de char sans que ça plante... :o


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1524563
Elmoricq
Modérateur
Posté le 06-03-2007 à 17:08:19  profilanswer
 

[:prozac]

 


Indice : tu réponds pas à la question. Probablement parce que Java != C.

 

edit : ah ben tiens, c'est p'têt moi qui me trompe, justement parce que ce qu'a écrit aneurysm dans l'énoncé a un sens précis en C [:el g]


Message édité par Elmoricq le 06-03-2007 à 17:10:55
n°1524565
aneurysm
Posté le 06-03-2007 à 17:09:02  profilanswer
 

d'accord mais apparement ca ne me permet pas de rajouter les quotes ni les virgules..
et c'est pour ca que je dois (a mon avis) utiliser une boucle for ... ou jme plante carrement


Message édité par aneurysm le 06-03-2007 à 17:10:54
n°1524572
Elmoricq
Modérateur
Posté le 06-03-2007 à 17:12:12  profilanswer
 

Bon, je viens de rerererelire le post initial. C'est p'têt MEI qui a raison sur le fond, et non moi, si c'est le cas je te présente mes excuses MEI. Mais c'est pas encore gagné tellement c'est clair. :o

 

Ouais, donc boucle for sur chaque caractère du premier tableau, et ajout dans le second, rien de bien sorcier. Montre-nous où tu en es dans ton code.


Message édité par Elmoricq le 06-03-2007 à 17:12:33
n°1524574
MEI
|DarthPingoo(tm)|
Posté le 06-03-2007 à 17:14:24  profilanswer
 

Ma boucle fait ce que tu veut en principe :??: Mais le tableau fait 40 apres... donc comme tu restait en [10] j'ai pas trop compris où tu veux en venir.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
mood
Publicité
Posté le 06-03-2007 à 17:14:24  profilanswer
 

n°1524578
aneurysm
Posté le 06-03-2007 à 17:15:27  profilanswer
 

???? qu'est ce qui n'est pas clair dans mon 1er post???? j'ai meme illustré au cas ou??

n°1524581
Elmoricq
Modérateur
Posté le 06-03-2007 à 17:17:15  profilanswer
 

Justement, ton illustration est fausse, ça correspond à une initialisation d'un tableau de caractères, caractère par caractère.
 
Mais montre-nous ton code, ça ira mieux. [:klem3i1]

n°1524612
aneurysm
Posté le 06-03-2007 à 17:30:28  profilanswer
 

voila l'exemple de mon code, avec des problemes quand meme
 
      char tab1[20]="pomme";
     char tab2[40];
 
  for (int i=0;i<20;i++)
    {
       tab2[i]= "'";
        tab2[i+1]= tab1[j];
        tab2[i+2]= "'";
tab2[i+3] = ",":
         i=i+4;
         j++;
      }

n°1524622
MEI
|DarthPingoo(tm)|
Posté le 06-03-2007 à 17:33:16  profilanswer
 

Bah si tu veut vraiment faire ça (et je me demande pourquoi), mon code fonctionne je pense.
 
avec des length(tab1) (enfin la fonction C qui retourne la taille d'un tableau);
 
j'ai edit mon code.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1524626
Elmoricq
Modérateur
Posté le 06-03-2007 à 17:34:21  profilanswer
 

D'où vient la variable j ?

 

De plus, une solution élégante existe avec la fonction sprintf(), qui te permettra de copier dans tab2 chaque lettre de tab1 de manière formatée.

 

exemple pour le premier caractère :

char tab1[20] = "pomme";
char tab2[40] = "";

 

sprintf(tab2, "%s'%c',", tab2, tab1[0]);

 

Je crois que cela devrait t'aider (ce n'est qu'un morceau de ce que tu dois faire pour arriver à tes fins).

 

Bien sûr, on ne traite ici que de l'affectation de caractères d'un tableau vers un autre, on passe complètement sur les aspects de gestion de la mémoire. :o


Message édité par Elmoricq le 06-03-2007 à 17:35:24
n°1524631
Elmoricq
Modérateur
Posté le 06-03-2007 à 17:36:16  profilanswer
 

MEI a écrit :

Bah si tu veut vraiment faire ça (et je me demande pourquoi), mon code fonctionne je pense.
 
avec des length(tab1) (enfin la fonction C qui retourne la taille d'un tableau);
 
j'ai edit mon code.


 
Mouais. Il y a des outils en C, et surtout en Java, qui permettent de traiter le problème de manière bien plus simple que ce que propose ton algorithme.

n°1525709
aneurysm
Posté le 08-03-2007 à 10:43:51  profilanswer
 

merci, j'ai fait un programme :  
char tab1[5] = "pomme";
 char tab2[40];
     int j=0;
     int i;
     
  for (i=0;i<20;i++)
 
      {  
       tab2[i]= 0X60;
        tab2[i+1]= tab1[j];
        tab2[i+2]= 0X60;
   tab2[i+3] = 0x2C;
         i=i+3;
         j++;
             
      }
           printf("contenu case :%s \n",&tab2);
 
qui m'affiche bien ce que je veux, par contre, il ne s'arrete pas au dernier charactère de tab1 et donc après m'afficher : 'p','o','m','m','e', il m'affiche carrement nympe, j'ai essayé i<length(tab1) mais il ne reconait pas la fonction...?


Message édité par aneurysm le 08-03-2007 à 10:50:07
n°1525713
Elmoricq
Modérateur
Posté le 08-03-2007 à 10:46:01  profilanswer
 

1. toute chaîne de caractère en C doit se terminer par un caractère nul '\0'
http://mapage.noos.fr/emdel/init_c.htm#string

 

2. c'est laid ce que tu as fait. Déjà, 0x60 tu peux mettre '\'' c'est plus parlant. Ensuite, modifier la variable d'itération d'une boucle for, c'est moche. Enfin, j'avais proposé une piste avec sprintf() qui menait à une solution plus simple à mettre en oeuvre, as-tu exploré cette piste ?


Message édité par Elmoricq le 08-03-2007 à 10:48:11
n°1525715
_darkalt3_
Proctopathe
Posté le 08-03-2007 à 10:47:32  profilanswer
 

Utiliser un debugger ?
 


---------------
Töp of the plöp
n°1526446
aneurysm
Posté le 09-03-2007 à 14:47:59  profilanswer
 

effectivement je n'ai repensé au charactère nul que grace a mon prof (le programme m'affichait nympe en attendant)
  ensuite pour le 0x60 il me le faut (le beck est assez susceptible a ce niveau la) et meme si c'est laid je suis arrivé a faire marcher le tout. Pour ce qui est de la beautée je verrai ca quand tout marchera je n'ai pas beaucoup de temps pour faire beaucoup de choses.
sur ce je vous remercie pour votre aide  
 :hello:


Message édité par aneurysm le 09-03-2007 à 14:50:12

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  passage tableau à tableau avec boucle for

 

Sujets relatifs
Accelerer exécution boucle en désactivant l'affichagetableau dynamique
Operations sur Tableau à 2 dimention[newbie] Spécifier la taille d'un tableau par une variable ??
[PHP] Boucle et $_FILE[CSS/HTML] double couleurs de fond de tableau
[Resolu] Tableau de byte -> floatTaille d'un tableau associatif
Tableau : scroller le contenu et pas l'entetePassage de XHTML en XML : Imbriquer section
Plus de sujets relatifs à : passage tableau à tableau avec boucle for


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR