Funkcja strcmp () w C ++ porównuje dwa ciągi kończące o wartości null. Porównanie odbywa się leksykograficznie.
Prototyp strcmp ()
int strcmp (const char * lhs, const char * rhs);
strcmp()
Funkcja przyjmuje dwa argumenty: lewa i prawa oś. Porównuje zawartość lhs i rhs leksykograficznie. Znak wyniku jest znakiem różnicy między pierwszymi parami znaków różniącymi się lewymi i prawymi.
Zachowanie strcmp()
jest niezdefiniowane, jeśli żaden z lhs lub rhs nie wskazuje na ciągi zakończone znakiem null.
Jest zdefiniowany w pliku nagłówkowym "> plik nagłówkowy.
strcmp () Parametry
lhs and rhs
: Wskaźnik do ciągów zakończonych wartością null do porównania.
strcmp () Wartość zwracana
Funkcja strcmp () zwraca:
- wartość dodatnia, jeśli pierwszy różniący się znak w lhs jest większy niż odpowiadający mu znak w prawostronnych.
- wartość ujemna, jeśli pierwszy różniący się znak w lhs jest mniejszy niż odpowiadający mu znak w prawostronnych.
- 0, jeśli hs i rhs są równe.
Przykład: Jak działa funkcja strcmp ()
#include #include using namespace std; void display(char *lhs, char *rhs, int result) ( if(result> 0) cout << rhs << " precedes " << lhs << endl; else if (result < 0) cout << lhs << " precedes " << rhs << endl; else cout << lhs << " and " << rhs << " are same" << endl; ) int main() ( char lhs() = "Armstrong"; char rhs() = "Army"; int result; result = strcmp(lhs,rhs); display(lhs,rhs,result); result = strcmp(lhs,lhs); display(lhs,lhs,result); return 0; )
Po uruchomieniu programu wynik będzie następujący:
Armstrong poprzedza Army Armstrong i Armstrong są takie same