Comment détecter un char[] à l'intérieur d'un if(){?
Résolu
AdamDuForum
Messages postés
17
Statut
Membre
-
AdamDuForum Messages postés 17 Statut Membre -
AdamDuForum Messages postés 17 Statut Membre -
Bonjour * !!!????
Cette méthode, avec leifne 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..!?
"Ceci est une signature."
2 réponses
-
'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. - en C++ toutes versions, on peut comparer à un
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour, je pense que tu ne peux pas faire une simple comparaison, il faut utiliser une fonction telle que strcmp.