Programme - darius - PRINTF

bench-003 Messages postés 48 Statut Membre -  
bench-003 Messages postés 48 Statut Membre -
Bonjour,
j'ai un gros problème :




#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
system("title Identification");
char darius [300];
printf("Bonjour ! Entrez votre nom, s'il vous plait.\n");
scanf("%s",&darius);
switch('darius'){
case 'darius' rintf("r");
break;
default : printf("non");

}

system("PAUSE");
return 0;
}
a chaque fois que je met autre chose que "darius" (voir case) ca me fait la fonction printf("r");


merci de votre aide au plus vite :)

2 réponses

fiddy Messages postés 11653 Statut Contributeur 1 847
 
Salut,
scanf("%s",&darius);
Tu peux enlever l'esperluette (&) puisque le tableau darius passé en paramètre de la fonction renverra l'adresse de la première case du tableau.

switch('darius')
Horreur ^^. Pour comparer en C des chaînes de caractères, on utilise strcmp (strncmp).
Donc tu ne pourras pas utiliser de switch.

Ce qui donnerait :
if(strcmp(darius,"darius",sizeof darius)==0) { 
      printf("r");
}


Sinon attention à l'utilisation de scanf qui s'avère catastrophique lorsque tu l'utilises sans imposer une taille maximum à ta chaîne.

Cdlt
1
bench-003 Messages postés 48 Statut Membre 1
 
merci merci !!
ça marche
0