Je viens de commencer à apprendre c et je voulais essayer la fonction strcmp, mais ça me donne toujours le résultat "1", si je le lance. Peu importe les chaînes que je tape. Comme la première chaîne est plus courte que la seconde, je m'attendais à ce que "-1" en résulte.pourquoi strcmp ne fonctionne pas dans c?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char array1[]="na";
char array2[]="kskkjnkjnknjd";
int i;
i= strcmp(array1,array2);
printf(" %d", i);
return 0;
}
J'ai aussi déjà essayé de se débarrasser de la variable i et il suffit d'écrire "printf (" % d », strcmp (array1, array2)), et en remplaçant le% d par% u, mais pas non plus Je l'ai déjà cherché sur le web et j'ai essayé de le découvrir par moi-même, probablement juste une simple erreur, je serais heureux si quelqu'un pouvait aider :)
Il ne s'agit pas seulement de comparer les longueurs. Il fait une comparaison caractère par caractère, et 'k' vient avant' n'. –
'strcmp (s1, s2)' ne devrait pas retourner 1, 0 ou -1, mais un entier supérieur, égal ou inférieur à 0, si la chaîne pointée par s1 est supérieure, égale ou inférieure à la chaîne pointée par s2, respectivement. Vous devez comparer le résultat à '== 0',' <0' or '> 0'. –
Si vous voulez comparer les longueurs de chaînes faites-le directement: 'if (strlen (a)
pmg