So sánh ký tự trong chuổi trong c

Thứ tự từ điển là một kiến thức quan trọng khi học về xâu ký tự, bài viết này mình sẽ hướng dẫn các bạn cách xác định thứ tự từ điển giữa các xâu ký tự cũng như các hàm và toán tử trong string đã cung cấp sẵn

NỘI DUNG :

  • Thứ Tự Từ Điển (Lexicographically) Là Gì ?
  • Toán Tử So Sánh String Và Hàm Compare()
  • Video Tutorial

1. Thứ Tự Từ Điển (Lexicographically) Là Gì ?

Thứ tự từ điển của xâu ký tự hiểu đơn giản là thứ tự abc trong bảng chữ cái, trong đó ký tự nào đứng trước trong bảng chữ cái sẽ có thứ tự từ điển nhỏ hơn.

Đối với chuỗi ký tự thì thứ tự từ điển của nó so với chuỗi ký tự khác được xác định bằng ký tự khác nhau đầu tiên của 2 xâu.

C++


Output

String 1: String Match
String 2: String Unmatch
The input strings are not equal.

2 có sẵn các hàm để thao tác dữ liệu của loại


Output

String 1: String Match
String 2: String Unmatch
The input strings are not equal.

2. Hàm


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Unmatch";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

8 là một hàm trong thư viện C được sử dụng để so sánh hai chuỗi theo cách từ điển.

cú pháp strcmp()

  • Chuỗi đầu vào phải là một mảng

    Output String 1: String Match String 2: String Unmatch The input strings are not equal.

    5 của Chuỗi kiểu C.
  • Output String 1: String Match String 2: String Unmatch The input strings are not equal.

    6 cũng so sánh các chuỗi ở dạng phân biệt chữ hoa chữ thường.

int strcmp(const char *str1, const char *str2);

Hàm này trả về các giá trị sau theo các trường hợp phù hợp:

  • Trả về

    Output String 1: String Match String 2: String Unmatch The input strings are not equal.

    7 nếu cả hai chuỗi giống nhau.
  • Trả về

    Output String 1: String Match String 2: String Unmatch The input strings are not equal.

    8 (nhỏ hơn 0) nếu giá trị của ký tự của chuỗi đầu tiên nhỏ hơn so với giá trị của chuỗi đầu vào thứ hai.
  • Kết quả là

    Output String 1: String Match String 2: String Unmatch The input strings are not equal.

    9 (lớn hơn 0) khi chuỗi thứ hai lớn hơn khi so sánh.

strcmp() Ví dụ 1

Chạy đoạn mã sau:


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Unmatch";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

Điều này sẽ tạo ra đầu ra sau:


Output

String 1: String Match
String 2: String Unmatch
The input strings are not equal.

# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Match";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

0 dẫn đến


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Match";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

1. Các giá trị của


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Match";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

2 và


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Match";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

3 là khác nhau.

strcmp() Ví dụ 2

Chạy đoạn mã sau:


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Match";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

Điều này sẽ tạo ra đầu ra sau:


Output

String 1: String Match
String 2: String Match
Both the input strings are equal.

# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Match";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

0 dẫn đến


Output

String 1: String Match
String 2: String Unmatch
The input strings are not equal.

7. Giá trị của


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Match";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

2 và


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Match";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

3 giống nhau.

2. Sử dụng hàm so sánh() trong C++

C++ có hàm


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Match";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

8 tích hợp để so sánh hai chuỗi.

so sánh() Cú pháp

Hàm


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Match";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

8 so sánh hai chuỗi:

int compare (const string& string-name) const;

Hàm này trả về các giá trị sau theo các trường hợp phù hợp:

  • Trả về

    Output String 1: String Match String 2: String Unmatch The input strings are not equal.

    7 nếu cả hai chuỗi giống nhau.
  • Trả về

    Output String 1: String Match String 2: String Unmatch The input strings are not equal.

    8 (nhỏ hơn 0) nếu giá trị của ký tự của chuỗi đầu tiên nhỏ hơn so với giá trị của chuỗi đầu vào thứ hai.
  • Kết quả là

    Output String 1: String Match String 2: String Unmatch The input strings are not equal.

    9 (lớn hơn 0) khi chuỗi thứ hai lớn hơn khi so sánh.

Ví dụ 1: Sử dụng so sánh()

Chạy đoạn mã sau:


# include <iostream>
int main()
{
  std::string str_inp1("String Match");
  std::string str_inp2("String Match");
  std::cout << "String 1: " << str_inp1 << std::endl;
  std::cout << "String 2: " << str_inp2 << std::endl;
  int res = str_inp1.compare(str_inp2);
  if (res == 0)
    std::cout << "\nBoth the input strings are equal." << std::endl;
  else if (res < 0)
    std::cout << "\nString 1 is smaller as compared to String 2." << std::endl;
  else
    std::cout << "\nString 1 is greater as compared to String 2." << std::endl;
}

Trong ví dụ này,


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Match";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

2 và


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Match";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

3 được so sánh với


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Match";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

8:


Output

String 1: String Match
String 2: String Match
Both the input strings are equal.

Cả hai chuỗi đều giống nhau về mặt từ điển, vì vậy hàm trả về


Output

String 1: String Match
String 2: String Unmatch
The input strings are not equal.

7.

Ví dụ 2: Sử dụng so sánh()

Chạy đoạn mã sau:


# include <iostream>
int main()
{
    std::string str_inp0("String Match");
    std::string str_inp1("String Match");
    std::string str_inp2("String Unmatch");
    std::cout << "String 1: " << str_inp1 << std::endl;
    if (str_inp1.compare(str_inp0) == 0)
        std::cout << "\nStrings are equal." << std::endl;
    else
        std::cout << "\nStrings are not equal." << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (str_inp2.compare(str_inp0) == 0)
        std::cout << "\nStrings are equal." << std::endl;
    else
        std::cout << "\nStrings are not equal." << std::endl;
}

Trong ví dụ này,


Output

String 1: String Match
String 2: String Match
Both the input strings are equal.

7 được so sánh với


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Match";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

2:


Output

String 1: String Match
Strings are equal.

Sau đó,


Output

String 1: String Match
String 2: String Match
Both the input strings are equal.

7 được so sánh với


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Match";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

3:


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Unmatch";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

0

Đoạn mã này so sánh trực tiếp một chuỗi với một chuỗi đầu vào khác với hàm


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Match";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

8.

3. Toán tử quan hệ trong C++

Các toán tử quan hệ trong C++ như


Output

String 1: String Match
String 2: String Unmatch
The input strings are not equal.

0 (bằng kép) và


Output

String 1: String Match
String 2: String Unmatch
The input strings are not equal.

1 (không bằng) có thể hữu ích trong việc so sánh các chuỗi.

Toán tử quan hệ Cú pháp

Kiểm tra xem hai giá trị có bằng nhau không:


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Unmatch";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

1

Kiểm tra xem hai giá trị có khác nhau không:


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Unmatch";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

2

Ví dụ 1: Sử dụng toán tử == trong C++

Chạy đoạn mã sau:


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Unmatch";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

3

Cung cấp giá trị cho \Chuỗi 1” và \Chuỗi 2”:


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Unmatch";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

4

Mã này sẽ so sánh hai chuỗi với


Output

String 1: String Match
String 2: String Unmatch
The input strings are not equal.

0.

Ví dụ 2: Sử dụng toán tử != của C++

Chạy đoạn mã sau:


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Unmatch";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

5

Cung cấp giá trị cho \Chuỗi 1” và \Chuỗi 2”:


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Unmatch";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

6

Mã này sẽ so sánh hai chuỗi với


Output

String 1: String Match
String 2: String Unmatch
The input strings are not equal.

1.

Phần kết luận

Trong bài viết này, bạn đã học các phương pháp so sánh chuỗi trong C++. Điều này bao gồm hàm


Output

String 1: String Match
String 2: String Unmatch
The input strings are not equal.

2 của


Output

String 1: String Match
String 2: String Unmatch
The input strings are not equal.

6, hàm


# include <iostream>

# include <string.h>
int main()
{
    const char *str_inp1 = "String Match";
    const char *str_inp2 = "String Match";
    std::cout << "String 1: " << str_inp1 << std::endl;
    std::cout << "String 2: " << str_inp2 << std::endl;
    if (strcmp(str_inp1, str_inp2) == 0)
        std::cout << "\nBoth the input strings are equal." << std::endl;
    else
        std::cout << "\nThe input strings are not equal." << std::endl;
}

8 tích hợp sẵn và các toán tử quan hệ (


Output

String 1: String Match
String 2: String Unmatch
The input strings are not equal.

0,


Output

String 1: String Match
String 2: String Unmatch
The input strings are not equal.

1).