Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menentukan sama ada Rentetan Berakhir dengan Subrentetan Tertentu dalam C?

Bagaimana untuk Menentukan sama ada Rentetan Berakhir dengan Subrentetan Tertentu dalam C?

DDD
DDDasal
2024-10-29 12:16:021044semak imbas

How to Determine if a String Ends with a Specific Substring in C  ?

Menentukan Pengakhiran Rentetan dalam C

Satu operasi biasa dalam manipulasi rentetan ialah menyemak sama ada rentetan yang diberikan berakhir dengan yang lain. Fungsi ini penting dalam pelbagai aplikasi, termasuk pemprosesan teks, padanan corak dan analisis fail.

Dalam C , terdapat pelbagai cara untuk memastikan sama ada rentetan berakhir dengan subrentetan tertentu. Satu kaedah yang cekap melibatkan penggunaan fungsi std::string::compare, tersedia dalam pustaka C standard.

Fungsi bandingkan membandingkan dua rentetan dan mengembalikan nilai integer yang mewakili hasilnya. Dengan membandingkan bahagian terakhir rentetan asal dengan subrentetan penamat yang berpotensi, kita boleh menentukan sama ada ia sepadan.

Kod berikut menunjukkan cara melaksanakan pendekatan ini:

<code class="cpp">#include <iostream>

bool hasEnding(const std::string& fullString, const std::string& ending) {
    if (fullString.length() >= ending.length()) {
        return (0 == fullString.compare(fullString.length() - ending.length(), ending.length(), ending));
    } else {
        return false;
    }
}

int main() {
    std::string test1 = "binary";
    std::string test2 = "unary";
    std::string test3 = "tertiary";
    std::string test4 = "ry";
    std::string ending = "nary";

    std::cout << hasEnding(test1, ending) << std::endl;
    std::cout << hasEnding(test2, ending) << std::endl;
    std::cout << hasEnding(test3, ending) << std::endl;
    std::cout << hasEnding(test4, ending) << std::endl;

    return 0;
}</code>

Dalam kod ini , kita mula-mula mentakrifkan fungsi hasEnding yang mengambil dua rentetan sebagai input. Fungsi ini mengembalikan boolean yang menunjukkan sama ada rentetan pertama berakhir dengan rentetan kedua.

Di dalam fungsi, kami menyemak sama ada panjang rentetan pertama lebih besar daripada atau sama dengan panjang rentetan kedua. Jika tidak, fungsi mengembalikan palsu.

Jika semakan panjang berlalu, kami menggunakan bandingkan untuk membandingkan bahagian terakhir rentetan pertama dengan rentetan kedua. Fungsi bandingkan mengembalikan 0 jika dua rentetan adalah sama, itulah yang kita semak untuk menentukan sama ada rentetan pertama berakhir dengan yang kedua.

Fungsi utama menguji fungsi hasEnding dengan beberapa rentetan input dan mengeluarkan hasilnya.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan sama ada Rentetan Berakhir dengan Subrentetan Tertentu dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn