Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Membahagikan Rentetan C Dengan Cekap Menggunakan Token?

Bagaimanakah Saya Boleh Membahagikan Rentetan C Dengan Cekap Menggunakan Token?

Linda Hamilton
Linda Hamiltonasal
2024-11-15 02:30:02619semak imbas

How Can I Efficiently Split C   Strings Using Tokens?

Memisahkan rentetan C Menggunakan Token dengan Cekap

Untuk membahagikan rentetan C std::rentetan kepada subrentetan berdasarkan token yang ditentukan, terdapat beberapa pendekatan yang anda boleh pertimbangkan. Penyelesaian yang paling cekap bergantung pada keperluan khusus aplikasi anda.

Dalam kes anda, di mana rentetan dipisahkan oleh ; aksara, dan penggunaan fungsi rentetan C dan Boost adalah terhad, anda boleh menggunakan fungsi std::getline(). Fungsi ini membolehkan anda membaca data daripada strim ke dalam rentetan, berhenti pada pembatas yang ditentukan.

Berikutan pendekatan ini, berikut ialah contoh mudah menggunakan std::getline() untuk membahagikan rentetan anda kepada subrentetan berasingan dan menyimpan mereka dalam vektor:

#include <sstream>
#include <iostream>
#include <vector>

using namespace std;

int main() {
    string input = "denmark;sweden;india;us";
    istringstream stream(input);

    vector<string> split_strings;
    string token;

    // Read substrings separated by ';'
    while (getline(stream, token, ';')) {
        cout << token << endl;
        split_strings.push_back(token);
    }
}

Kod ini menunjukkan cara membaca aksara rentetan mengikut aksara menggunakan std::getline(), bahagikannya berdasarkan ; pembatas, dan simpan subrentetan individu dalam vektor.

Dengan menggunakan pendekatan ini, anda boleh memisahkan rentetan anda kepada token dengan cekap dan melaksanakan sebarang operasi pemprosesan atau penyimpanan yang diperlukan seperti yang diperlukan oleh aplikasi anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membahagikan Rentetan C Dengan Cekap Menggunakan Token?. 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