Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

เปรียบเทียบสตริงไม่สนใจตัวพิมพ์เล็กใหญ่ใน C++


ใน C++ เรามีสตริงใน standard library ในโปรแกรมนี้เราจะดูวิธีตรวจสอบว่าสตริงสองตัวเหมือนกันหรือไม่ โดยจะไม่สนใจตัวพิมพ์เล็ก/ใหญ่

ตรรกะง่ายๆ เราจะแปลงสตริงทั้งสองเป็นตัวพิมพ์เล็กหรือพิมพ์ใหญ่ทั้งหมด แล้วเปรียบเทียบ และคืนผลลัพธ์

เราใช้ algorithm library เพื่อได้ฟังก์ชัน transform เพื่อแปลงสตริงเป็นตัวพิมพ์เล็ก

Input: สตริงสองตัว "Hello WORLD" และ "heLLO worLD"
Output: สตริงเหมือนกัน

อัลกอริทึม

ขั้นตอน 1: รับสตริงสองตัว str1 และ str2
ขั้นตอน 2: แปลง str1 และ str2 เป็นตัวพิมพ์เล็ก
ขั้นตอน 3: เปรียบเทียบ str1 และ str2
ขั้นตอน 4: จบ

ตัวอย่างโค้ด

#include <iostream>
#include <algorithm>
using namespace std;

int case_insensitive_match(string s1, string s2) {
    // แปลง s1 และ s2 เป็นสตริงตัวพิมพ์เล็ก
    transform(s1.begin(), s1.end(), s1.begin(), ::tolower);
    transform(s2.begin(), s2.end(), s2.begin(), ::tolower);
    
    if(s1.compare(s2) == 0)
        return 1; // สตริงเหมือนกัน
    return 0; // ไม่ตรงกัน
}

main() {
    string s1, s2;
    s1 = "Hello WORLD";
    s2 = "heLLO worLD";
    
    if(case_insensitive_match(s1, s2)) {
        cout << "Strings are same";
    }else{
        cout << "Strings are not same";
    }
}

ผลลัพธ์

Strings are same