additionner les variables mais pas les valeurs

additionner les variables mais pas les valeurs - C - Programmation

Marsh Posté le 26-04-2009 à 17:55:39    

Bonjour,
ma question est très simple, comment "coller" deux variables en c ?
un équivalent du a.b en php ou encore le + dans d'autres langages quand c'est une chaîne de caractères.
Merci d'avance,

Reply

Marsh Posté le 26-04-2009 à 17:55:39   

Reply

Marsh Posté le 26-04-2009 à 18:07:08    

Il faut que tes deux variables soient des char ou char *, puis tu pourras utiliser strcat de la bibliothèque String.h

Reply

Marsh Posté le 26-04-2009 à 18:07:59    

OK, merci bien.

Reply

Marsh Posté le 26-04-2009 à 18:26:30    

En fait ce que je voulais faire c'est utiliser une boucle au lieu de répéter les conditions ici

 


Code :
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4. int i=0,na=0,no=0,nu=0,ni=0,ne=0,ny=0;   
  5. char c;
  6.    while (i <= 20 && c != '.')
  7.     {
  8.         printf("Veuillez entrer un caractere :\n" );
  9.         scanf("%c", &c);
  10.         if (c == 'a')
  11.                { na++;}
  12.         if (c == 'o')
  13.                 { no++;}
  14.         if (c == 'u')
  15.                 {nu++;}
  16.         if (c == 'i')
  17.                 {ni++;}
  18.         if (c == 'e')
  19.                 {ne++;}
  20.         if (c =='y')
  21.                 {ny++;} // NY state, yay !
  22.     i++;   
  23.     }
  24.     printf ("a = %dfois\n o = %dfois\n u = %dfois\n i = %dfois\n e = %dfois \n",na,no,nu,ni,ne);
  25.     return 0;
  26. }
 

de faire :

Code :
  1. #include <stdio.h>
  2. int main {
  3. char array[] = {a,e,o,i,u,y}
  4. int i=0,na=0,no=0,nu=0,ni=0,ne=0,ny=0; 
  5. char c;
  6. scanf("%c", &c);
  7. while (i <= 5)
  8. {
  9. if (c == array[i])
  10. // n + array[i] ++ ; ??
  11. i++;
  12. }
  13. printf ("a = %dfois\n o = %dfois\n u = %dfois\n i = %dfois\n e = %dfois \n",na,no,nu,ni,ne);
  14. return 0;
  15. }
 

Vous en pensez quoi ?

Message cité 2 fois
Message édité par Nethacker le 26-04-2009 à 18:35:15
Reply

Marsh Posté le 26-04-2009 à 18:57:59    

khyda a écrit :

Il faut que tes deux variables soient des char ou char *, puis tu pourras utiliser strcat de la bibliothèque String.h


strncat() même.

Nethacker a écrit :


 
Vous en pensez quoi ?


Que tu te compliques les choses même dans ton second code.


---------------
You get so used to things the way they are. And I've always been alone. I guess that makes me lonely.
Reply

Marsh Posté le 26-04-2009 à 19:02:16    

non, mais imaginez d'autres problèmes avec de longs tableaux ...
Edit :
c'est tout comme executer du code contenu dans des chaines, on runtime !


Message édité par Nethacker le 26-04-2009 à 19:13:01
Reply

Marsh Posté le 26-04-2009 à 21:29:42    

-Opera- a écrit :


strncat() même.


Voire strlcat(même si c'est pas standard).

Citation :

Vous en pensez quoi ?


Rien, si ce n'est que ça:
int main {
char array[] = {a,e,o,i,u,y}
 
ça ne risque pas de compiler.


Message édité par el muchacho le 26-04-2009 à 21:42:26

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 27-04-2009 à 20:47:01    

bah rapidement écrit quoi ... en fait, au début je voulais mettre que la partie du code qui vous "interessera"... après je me suis dit qu'il faut mettre les déclarations aussi, et finalement je colle d'ici et de là, pour enfin oublier les paranthèses xD

Reply

Marsh Posté le 05-05-2009 à 22:49:11    

Nethacker a écrit :

En fait ce que je voulais faire c'est utiliser une boucle au lieu de répéter les conditions ici
<...>
Vous en pensez quoi ?



 
-------------- Build: Debug in hello ---------------
 
Compiling: main.c
Linking console executable: bin\Debug\hello.exe
C:\dev\hello\main.c:2: error: syntax error before '{' token
C:\dev\hello\main.c:6: error: syntax error before string constant
C:\dev\hello\main.c:6: warning: type defaults to `int' in declaration of `scanf'
C:\dev\hello\main.c:6: warning: function declaration isn't a prototype
C:\dev\hello\main.c:6: error: conflicting types for 'scanf'
C:\dev\hello\main.c:6: note: a parameter list with an ellipsis can't match an empty parameter name list declaration
C:\dev\hello\main.c:6: error: conflicting types for 'scanf'
C:\dev\hello\main.c:6: note: a parameter list with an ellipsis can't match an empty parameter name list declaration
C:\dev\hello\main.c:6: warning: data definition has no type or storage class
C:\dev\hello\main.c:13: error: syntax error before string constant
C:\dev\hello\main.c:13: warning: type defaults to `int' in declaration of `printf'
C:\dev\hello\main.c:13: warning: function declaration isn't a prototype
C:\dev\hello\main.c:13: error: conflicting types for 'printf'
C:\dev\hello\main.c:13: note: a parameter list with an ellipsis can't match an empty parameter name list declaration
C:\dev\hello\main.c:13: error: conflicting types for 'printf'
C:\dev\hello\main.c:13: note: a parameter list with an ellipsis can't match an empty parameter name list declaration
C:\dev\hello\main.c:13: warning: data definition has no type or storage class
Process terminated with status 1 (0 minutes, 0 seconds)
7 errors, 6 warnings


Ceci :  

Code :
  1. #include <stdio.h>
  2. int main (void)
  3. {
  4.    enum
  5.    { A, E, I, O, U, Y, NB };
  6.    char array[NB] = "aeiouy";
  7.    int n[NB] = { 0 };
  8.    int c;
  9.    while ((c = getchar ()) != '\n')
  10.    {
  11.       int i;
  12.       for (i = 0; i < NB; i++)
  13.       {
  14.          if (c == array[i])
  15.          {
  16.             n[i]++;
  17.          }
  18.       }
  19.    }
  20.    {
  21.       int i;
  22.       for (i = 0; i < NB; i++)
  23.       {
  24.          printf ("%c = %d fois\n", array[i], n[i]);
  25.       }
  26.    }
  27.    return 0;
  28. }


donne :


Hello world
a = 0 fois
e = 1 fois
i = 0 fois
o = 2 fois
u = 0 fois
y = 0 fois
 
Process returned 0 (0x0)   execution time : 8.563 s
Press any key to continue.


Message édité par Emmanuel Delahaye le 05-05-2009 à 23:00:05

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed