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!