Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengasingkan Rentetan Dibatasi Koma dengan Cekap dalam C ?

Bagaimanakah Saya Boleh Mengasingkan Rentetan Dibatasi Koma dengan Cekap dalam C ?

Patricia Arquette
Patricia Arquetteasal
2024-11-27 17:36:14358semak imbas

How Can I Efficiently Separate Comma-Delimited Strings in C  ?

Memisahkan Rentetan Dibatasi Koma Menggunakan Aliran Rentetan

Dalam masalah yang disediakan, tugasnya adalah untuk memisahkan rentetan yang dibataskan koma kepada token individu. Walaupun aliran rentetan::operator boleh dengan mudah memisahkan perkataan mengikut ruang, ia kurang apabila ia berkaitan dengan koma.

Untuk mengatasi cabaran ini, kami menggunakan pendekatan yang diubah suai:

#include <iostream>
#include <sstream>

int main() {
  std::string input = "abc,def,ghi";
  std::istringstream ss(input);
  std::string token;

  // Use getline to separate by commas
  while (std::getline(ss, token, ',')) {
    std::cout << token << '\n';
  }

  return 0;
}

Dalam ini kod diubah suai:

  • Kami menggunakan std::getline dan bukannya std::stringstream::operator>>. getline boleh mengekstrak subrentetan sehingga pembatas yang ditentukan (dalam kes ini, koma).
  • Kami mengulangi strim input sehingga tiada lagi token ditemui.
  • Untuk setiap token, kami mencetaknya pada baris baharu.
  • Output memisahkan rentetan input dengan tepat kepada individu token:

    abc
    def
    ghi

    Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengasingkan Rentetan Dibatasi Koma dengan Cekap 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