Comment détecter un char[] à l'intérieur d'un if(){? [Résolu]

Messages postés
12
Date d'inscription
lundi 26 août 2019
Statut
Membre
Dernière intervention
11 septembre 2019
-

Bonjour * !!!????

Cette méthode, avec le
if
ne fonctionne pas, mais je ne sais pas pourquoi. J'aurais besoin d'aide.

J'ai fait une version
#include <iostream>
pour ceux qui n'utilisent pas
#include <stdio.h>
.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string>
#include <string.h>
#include <cstring>
#include <iostream>
#include <cstdlib>

int main(){

  char help[30];

  //cout << "tape help pour de l'aide";
  printf("tape help pour de l'aide");

  //cin >> help;
  scanf("%s", help);

  if(help == "help"){

     //cout << "ceci est utile";
     printf("ceci est utile");

  }

  else{

     //cout << "Bonjour " << help << " !";
     printf("Bonjour %s !", help);

  }
  return 0;
}

Vous pouvez me faire ajouter des
#include
, ça ne me dérange pas.

S'il vous plait... Merci d'avance..!?

Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
4886
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
1 septembre 2019
854
1
Merci
'lut,
  • en C++ toutes versions, on peut comparer à un
    std::string
    :
    #include <string>
    ...
    if(help == std::string("help")){
    
  • en C++ 17 et plus, on peut comparer à un
    std::string_view
    , qui n'allouera pas de mémoire dynamiquement:
    #include <string_view>
    ...
    if(help == "help"sv){
    

Inversement tu peux mettre ton entrée dans un string_view, et comparer à des littéraux; pas d'allocation dynamique non plus:
#include <string_view>
...
std::string_view command(help);
if(command == "help"){
  • en C++ et C, avec la bibliothèque standard:
    #include <string.h>  // ou <cstring> si en C++11 ou plus
    ...
    if(strncmp(help, "help", 30) == 0){
    
    .

Quelque soit ton choix, fait attention à
scanf
qui peut facilement déborder de ton buffer de 30 octets; il faut lui spécifier une taille maximum.

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 60192 internautes nous ont dit merci ce mois-ci

AdamDuForum
Messages postés
12
Date d'inscription
lundi 26 août 2019
Statut
Membre
Dernière intervention
11 septembre 2019
-
je ne comprends pas totalement ce que tu veux dire, pourrais-tu me donner un exemple avec le programme que j'ai écris plus haut stp?
ElementW
Messages postés
4886
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
1 septembre 2019
854 > AdamDuForum
Messages postés
12
Date d'inscription
lundi 26 août 2019
Statut
Membre
Dernière intervention
11 septembre 2019
-
Le code que je donne est déjà un tas d'exemples de modifications de ton programme... où tu remplaces la 1ère ligne de ton
if
par ce qui est donné. Et les includes vont en haut.
AdamDuForum
Messages postés
12
Date d'inscription
lundi 26 août 2019
Statut
Membre
Dernière intervention
11 septembre 2019
-
Ok Ok, ça fonctionne! Merci Beaucoup pour ton aide, ça m'a été vraiment utile.
Commenter la réponse de ElementW
Messages postés
8556
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 septembre 2019
424
0
Merci
bonjour, je pense que tu ne peux pas faire une simple comparaison, il faut utiliser une fonction telle que strcmp.
Commenter la réponse de yg_be