Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengeluarkan Integer dengan Cekap daripada Rentetan Dipisahkan Koma dalam C?

Bagaimanakah Saya Boleh Mengeluarkan Integer dengan Cekap daripada Rentetan Dipisahkan Koma dalam C?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-29 10:02:09732semak imbas

How Can I Efficiently Extract Integers from a Comma-Separated String in C  ?

Mengekstrak Data Numerik daripada Rentetan Dibatasi Koma dalam C

Menghuraikan data daripada rentetan yang dipisahkan koma ke dalam tatasusunan berangka memberikan cabaran biasa dalam pengaturcaraan . Untuk kes khusus nombor integer, C menyediakan beberapa pendekatan mudah.

Algoritma Penghuraian Asas:

Satu kaedah mudah melibatkan lelaran melalui aksara rentetan mengikut aksara. Untuk setiap aksara, semak sama ada aksara seterusnya ialah koma. Jika ya, buang koma. Jika tidak, tukar aksara kepada integer dan simpannya dalam tatasusunan.

Menggunakan istringstream:

C Standard Library menawarkan kelas istringstream untuk menghuraikan strim input. Untuk mengekstrak nombor daripada rentetan yang dipisahkan koma, cipta objek istringstream dengan rentetan sebagai input. Kemudian, gunakan operator pengekstrakan strim >> untuk mengekstrak setiap nombor satu demi satu.

Pelaksanaan:

Coretan kod berikut menunjukkan algoritma penghuraian asas menggunakan istringstream:

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

int main()
{
    std::string str = "1,2,3,4,5,6";
    std::vector<int> vect;

    std::stringstream ss(str);

    for (int i; ss >> i;) {
        vect.push_back(i);    
        if (ss.peek() == ',')
            ss.ignore();
    }

    for (std::size_t i = 0; i < vect.size(); i++)
        std::cout << vect[i] << std::endl;

    return 0;
}

Pilihan Lain:

Untuk penghuraian yang lebih kompleks senario, Perpustakaan Standard C menyediakan pilihan tambahan, seperti fungsi strtok dan ungkapan biasa. Walau bagaimanapun, untuk senarai integer yang dipisahkan koma mudah, kaedah di atas biasanya mencukupi dan mudah untuk dilaksanakan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Integer dengan Cekap daripada Rentetan Dipisahkan Koma 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