J'ai lu la description de strcmp il a dit "Teste les chaînes pour l'égalité retourne un nombre négatif si chaîne1 est inférieure à chaîne2, renvoie zéro si les deux chaînes sont égales, et renvoie un nombre positif est chaîne1 est supérieur à string2 "de http://www.cprogramming.com/fod/strcmp.html. Cependant, j'ai couru dans un programme qui me donne un nombre positif au lieu d'un nombre négatif. Quelqu'un peut-il expliquer pourquoi il est positif au lieu de sortie négative?Sortie strcmp avec une valeur positive
using namespace std;
int f(int n) {
if (n < 0) {
return -1;
} else if (n == 0) {
return 0;
} else {
return 1;
}
}
int main(int argc, char* argv[]) {
char a[10];
char b[10];
int n;
strcpy(a, "4");
strcpy(b, "345");
n = strcmp(a, b);
cout << f(n) << endl;
}
Si le point de 'f()' juste pour confondre les choses? Quoi qu'il en soit, '" 4 "' est lexicographiquement supérieur à "345". – juanchopanza
Oh veux juste le rendre plus simple – SpaceWalker
Vraiment? Pourquoi ne pas simplement imprimer 'n'? – juanchopanza