Je veux tester et voir si une variable de type "char" peut être comparée à une chaîne normale comme "cheese" pour une comparaison comme:
#include <stdio.h>
int main()
{
char favoriteDairyProduct[30];
scanf("%s",favoriteDairyProduct);
if(favoriteDairyProduct == "cheese")
{
printf("You like cheese too!");
}
else
{
printf("I like cheese more.");
}
return 0;
}
(Ce que je veux réellement faire est beaucoup plus long que cela, mais c'est la partie principale sur laquelle je suis coincé.) Alors comment comparer une chaîne en C?
Vous recherchez la fonction strcmp
ou strncmp
à partir de string.h
.
Comme les chaînes ne sont que des tableaux, vous devez comparer chaque caractère. Cette fonction le fera pour vous:
if (strcmp(favoriteDairyProduct, "cheese") == 0)
{
printf("You like cheese too!");
}
else
{
printf("I like cheese more.");
}
Lectures supplémentaires: strcmp at cplusplus.com
if(strcmp(aString, bString) == 0){
//strings are the same
}
bonne vitesse
Vous ne pouvez pas comparer un tableau de caractères en utilisant l'opérateur ==
. Vous devez utiliser des fonctions de comparaison de chaînes. Jetez un oeil à Strings (c-faq) .
La fonction
strcmp
de la bibliothèque standard compare deux chaînes et renvoie 0 si elles sont identiques, ou un nombre négatif si la première chaîne est inférieure à la seconde chaîne dans l'alphabet ou un nombre positif si la première chaîne est "supérieure".
if(!strcmp(favoriteDairyProduct, "cheese"))
{
printf("You like cheese too!");
}
else
{
printf("I like cheese more.");
}