So sánh 2 char trong c++ năm 2024

Khi so sánh 2 số trong C thì ta có một số phép toán làm rất đơn giản <, >, >=, <=, ==, !=, tuy nhiên để so sánh chuỗi thì chúng ta không thể dùng các phép toán đó mà cần phải dùng hàm strcmp nằm trong thư viện string.h.

Hàm strcmp so sánh chuỗi s1 và chuỗi s2 và cho ta kết quả:

  • 1 Nếu s1 lớn hơn s2
  • 0 Nếu s1 giống s2
  • -1 Nếu s1 nhỏ hơn s2

Lưu ý: Trong Linux, hàm này trả về giá trị âm, dương, 0 (là khoảng cách giữa 2 ký tự khác nhau tương ứng trong s1, s2).

Ví dụ chương trình sau:

include

include

int main() {

char s1[20];
char s2[20];                
do 
{
    printf("Enter s1: ");
    gets(s1);
    printf("Enter s2: ");
    gets(s2);
    int x = strcmp(s1, s2);
    printf("x = %d", x);
    if(x < 0) printf(" => %s < %s", s1, s2);
    if(x > 0) printf(" => %s > %s", s1, s2);
    if(x == 0)printf(" => %s = %s", s1, s2);
    printf("\n\n");
} while ( strcmp(s1, s2) != 0);
return 0;
}

Kết quả:

Enter s1: Hang

Enter s2: Ho x = -1 => Hang < Ho

Enter s1: Hong Enter s2: Hon x = 1 => Hong > Hon

Enter s1: Hung Enter s2: hung x = -1 => Hung < hung

Enter s1: Quan Enter s2: Quan x = 0 => Quan = Quan

2. Nguyên tắc so sánh

Nguyên tắc so sánh 2 chuỗi đó là duyệt lần lượt 2 từng ký tự của 2 chuỗi. So sánh mã ACSII của 2 ký tự đó, mã ký tự nào lớn hơn tức là chuỗi lớn hơn và ngừng so sánh. Nếu một chuỗi nào hết ký tự để so sanh trước thì chuỗi đó bé hơn.

Yêu cầu bài tập C này là so sánh xem hai chuỗi có đồng nhất (giống nhau) hay không. Để giải bài tập C này bạn cần sử dụng vòng lặp để duyệt qua tất cả các ký tự của hai chuỗi và kiểm tra từng ký tự tương ứng với chỉ mục có giống nhau không.

Chương trình C

Quảng cáo

Dưới đây là chương trình C để giải bài tập so sánh hai chuỗi trong C:

include

int main() { char s1[] = "vietjack"; char s2[] = "viatjack"; int n = 0; unsigned short flag = 1; while (s1[n] != '\0') {

  if(s1[n] != s2[n]) {
     flag = 0;
     break;
  }
  n++;
} if(flag == 1) {
  printf("Chuoi %s va chuoi %s la dong nhat!!!\n", s1, s2);
}else {
  printf("Chuoi %s va chuoi %s la khong dong nhat!!!\n", s1, s2);
} return 0; }

Biên dịch chương trình C trên sẽ cho kết quả:

Quảng cáo

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

So sánh 2 char trong c++ năm 2024

So sánh 2 char trong c++ năm 2024

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Hàm strcmp() trong C được sử dụng để so sánh 2 chuỗi. Nếu hàm strcmp(str1, str2) trả về 0 thì 2 chuỗi bằng nhau, lớn hơn 0 thì chuỗi str1 lớn hơn chuỗi str2 và ngược lại nếu nhỏ hơn 0 thì chuỗi str1 nhỏ hơn str2.

include

include

int main() { char str1[20], str2[20]; printf("Nhap chuoi 1: "); gets(str1); printf("Nhap chuoi 2: "); gets(str2); if (strcmp(str1, str2) == 0) { printf("2 chuoi bang nhau."); } else if (strcmp(str1, str2) > 0) { printf("Chuoi 1 lon hon chuoi 2"); } else { printf("Chuoi 1 nho hon chuoi 2"); } return 0; } Kết quả:

Nhap chuoi 1: HelloC Nhap chuoi 2: HelloC++ Chuoi 1 nho hon chuoi 2



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 

# include 
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 

# include 
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 

# include 
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 

# include 
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 

# include 
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 

# include 
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 

# include 
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 

# include 
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 

# include 
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 

# include 
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 

# include 
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 

# include 
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 
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 

# include 
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 

# include 
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 

# include 
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 
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 

# include 
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 

# include 
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 

# include 
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 

# include 
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 

# include 
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 

# include 
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 

# include 
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 

# include 
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 

# include 
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 

# include 
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 

# include 
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).