Tom's Guide > Forum > Programmation > Probleme de syntaxe en C
Mot :    Pseudo :           
 

Bonjour, je suis étudiant dans une filière scientifique, et je dois réaliser un projet en C.
J'ai fait il y a de ça quelques années pas mal de php, donc la programmation en elle meme pose pas trop de problemes.

En revanche les profs qu on a s'immaginent qu on a la science infuse et donc on est sencés pouvoir faire ce qu on veut apres 5h de cours et 10h de TD (a peine de quoi voir les grandes bases).

Ma question, j y arrive, serait de savoir quelle est la méthode la plus efficace pour enregistrer une chaine dans un tableau à une dimension, sans entrer les valeurs "case par case". un truc du genre :

Code :
  1. char variable[20];
  2. if(m=0){variable="chaine1\0";}
  3. if(m=1){variable="chaine2\0";}
  4. if(m=2){variable="chaine3\0";}
  5. etc...
  6. De façon à avoir par exemple pour m=0 [c][h][a][i][n][e][1][\0]
  7.                                       0  1  2  3  4  5  6  7  8



sauf que ca ca marche pas, c est juste pour vous donner une idée de ce que je souhaite faire.
J'ai quasiment fini tout mon programme mais je bloque sur cette c******e de probleme de syntaxe.

Je vous remercie d avance de m'aider!

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

avec une boucle de type for t une fonction d'extraction de chaine, ça doit marcher, non ?

Je saurais le faire en python, mais en C, je connais pas le langage...

Répondre à isatis39871

il faut que t'ecrive la structure de ton if comme ça :
if (m==1)(..........)
remplace ton = par ==
enfin je pense que ca vient de la

Répondre à boule3

bon si ca vien que du == --> =

lit pas
mais sinon essai strcat () ou de la meme famille.
dans la console tape man strcat
c'est dans le 3 ieme chapitre si je me souvient bien.
t'aura t ou les include s .
;)

Répondre à bouleabil

je vient d'avoir un idee ,
char * vari;

vari = "exemple";

mais faut tester;
ca vient peut etre de ca !!
ca fait longtemps que j'ai pluis toucher au C moi

Répondre à bouleabil

ah excusez moi j ai ecrit vite fait donc j ai pas fait gaffe au "==", ce n'est pas l'origine du probleme.

comment marche-t-elle la fonction strcat()?

Répondre à skeuv

essai le pointeur d'abort
sinon de tete elle prend prend 2 char*

et les comcatene du str(ing)cat(??)

regarde le man sur la console :
man strcat

Répondre à bouleabil

ok merci ca marche!

Répondre à skeuv

Il ya 2 erreurs:
- le m=0 à remplacer par m==0
- variable="chaine1\0"; c'est juste une copie de pointeur. Il faut copier le contenu situé à l'adresse temporaire de "chaine1\0" dans la mémoire d'adresse 'variable'

Voici le code correct (enfin je pense :-D ):

Code :
  1. char variable[20];
  2. if(m==0){strcpy (variable, "chaine1\0" );}
  3. if(m==1){strcpy (variable, "chaine2\0" );}
  4. if(m==2){strcpy (variable, "chaine3\0" );}



pour optimiser tu peux faire (mais ce n'est que du détail):

Code :
  1. char variable[20];
  2. if(m==0){strcpy (variable, "chaine1\0" );}
  3. else if(m==1){strcpy (variable, "chaine2\0" );}
  4. else if(m==2){strcpy (variable, "chaine3\0" );}



ou bien (c'est exactement la même chose):

Code :
  1. char variable[20];
  2. switch (m)
  3. {
  4. case 0:
  5.   strcpy (variable, "chaine1\0" );
  6. break;
  7. case 1:
  8.   strcpy (variable, "chaine2\0" );
  9. break;
  10. case 2:
  11.   strcpy (variable, "chaine3\0" );
  12. break;
  13. }

Répondre à CRicky
Tom's Guide > Forum > Programmation > Probleme de syntaxe en C
Aller à :

Il y a 2133 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens