Menu
CoddyTech

Porównywanie ciągów znaków

Część sekcji Podstawy ścieżki C++ w Coddy. Lekcja 22 z 74.

W C++ porównywanie ciągów znaków można przeprowadzić na wiele sposobów. Ponieważ std::string jest klasą, ma przeciążone operatory, które sprawiają, że porównywanie ciągów znaków jest intuicyjne i proste.

Najczęściej ciągi znaków porównuje się za pomocą operatorów porównania (==, !=, <, >, <=, >=):

string str1 = "hello";
string str2 = "hello";
string str3 = "Hello";

bool result1 = (str1 == str2);  // true
bool result2 = (str1 == str3);  // false (rozróżnia wielkość liter)
bool result3 = (str1 != str3);  // true

Możesz także użyć metody compare(), która zwraca 0, jeśli ciągi znaków są równe, liczbę całkowitą ujemną, jeśli pierwszy ciąg znaków jest leksykograficznie mniejszy, oraz liczbę całkowitą dodatnią, jeśli jest większy. Pamiętaj, że dokładna wartość zależy od implementacji. Niekoniecznie jest to -1 ani 1:

string str1 = "a";
string str2 = "b";
string str3 = "c";

cout << str2.compare(str1) << endl; 
// Dodatnia (b występuje po a)

cout << str2.compare(str3) << endl;
// Ujemna (b występuje przed c)

cout << str2.compare(str2) << endl;
// 0 (równe ciągi znaków)

Spróbuj swoich sił

Ta lekcja nie zawiera wyzwania z kodem.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator C++ online