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

Language C question?

werto
werto
Niveau 5
30 mars 2006 à 03:51:41

Salut! Je commence a apprendre le C et je voudrais savoir comment faire pour que le logiciel fasse ceci:

quel est ton nom?

ex: pierre(ou n´importe quel nom sauf ex: luc)

Salut a toi Pierre ou autre nom

et si il repond luc qu´il lui disent un autre phrase du genre : Je vous avait dit de ne plus revenir!

je ne sais pas si vous comprenez si oui veuillez m´aider svp

DantePC
DantePC
Niveau 10
30 mars 2006 à 08:38:04

Salut à toi. En C, pour lire une chaîne de caractères, tu as plusieurs façons. Déjà il te faudra déclarer un tableau de caractère (et oui en C, une chaîne de caractères est bien un tableau de char)

char nom[100] = {0}; //Je déclare un tableau de 10
0 char (100 car l´on ne connait pas la taille du nom et ce n´est pas 100 octets qui vont faire du mal à la mémoire :) ) puis j´initialise tout à 0.

Bon ensuite tu fais un printf normal pour demander un prénom.

printf("Quel est ton prenom: "); //Ca tu dois comp
rendre.

Puis ensuite c´est là que tu as plusieurs méthodes pour lire une chaîne de caractères.

Tu peux utiliser un scanf :

scanf("%s",nom);

Mais là, attention si tu dépasses la limite de nom (c´est à dire 100 caractères), tu vas avoir une erreur car tu auras dépassé l´espace qui lui sera aloué on dit aussi dépassement du tampon me semble t´il. De plus scanf garde aussi en mémoire le caractère de retour chariot \n. Bref, je pense que ce n´est pas la meilleure solution. J´utilise celle-ci :

fgets(nom,100,stdin);

donc fgets va stoquer dans ton tableau nom au maximum 100 caractères. stdin correspond à l´entrée input (le clavier), stdout serait l´écran.

Ensuite savoir si le nom entré est luc, tu as une fonction toute prête de <string.h> qui est strcmp. Elle s´utilise comme ceci.

if (strcmp(nom,"luc") == 0) // si le nom est luc.
{
printf("Haha, je t´ai reconnu luc");
}

donc en gros ton programme donnerai ceci:

  1. include <stdio.h>
  2. include <stdlib.h>
  3. include <string.h>

int main(void)
{
char nom[100] = {0};
printf("Quel est votre nom: ");
fgets(nom,100,stdin);
if (strcmp(nom,"luc") == 0)
{
printf("Haha, je t´ai reconnu luc.");
}
else
{
printf("Bienvenue a toi %s",nom);
}
}

dnob700
dnob700
Niveau 10
30 mars 2006 à 18:23:01

ont peut utiliser aussi :
scanf("%100s",nom);
pour limiter à 100 le nombre de caractère lu. Et c´est plus propre, car gets, laisse trainer des morceau de code de controle (genre retour à la ligne) un peu partout.

guyver2
guyver2
Niveau 10
30 mars 2006 à 18:23:37

juste pour pinailler; il manque
return 0;
avant la derniere acolade

DantePC
DantePC
Niveau 10
30 mars 2006 à 18:43:09

Oups pardon.

manque return 0; et getchar(); ou éventuellement system("PAUSE"); si tu veux que le programme "attende"

dnob700
dnob700
Niveau 10
30 mars 2006 à 19:30:54

juste pour pinailler un peu plus, il ne manque pas return 0, car à la fin de la fonction main, un return 0 est ajouté automatiquement pas le compilateur si nécessaire.

[LoCkLeSs]
[LoCkLeSs]
Niveau 10
30 mars 2006 à 21:05:17

Et pour pinailler encore plus: pas besoin de getchar ou de PAUSE suffit de lancer le programme en console ! :-)

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment