Wie drucke ich eine durch Kommas getrennte Liste in C?
In C kann das Drucken einer durch Kommas getrennten Liste von Elementen im Vergleich dazu schwierig sein zu anderen Sprachen wie Java. Um dieses Problem zu lösen, untersuchen wir verschiedene Techniken.
Verwendung eines Infix-Iterators
Mit einem Infix-Iterator können Sie während der Iteration ein Trennzeichen zwischen jedem Element einfügen. Es handelt sich um eine angepasste Variante des Standard-Ausgabe-Iterators.
// infix_iterator.h // Extended output iterator with delimiter insertion template <typename T, typename charT, typename traits = std::char_traits<charT>> class infix_ostream_iterator : public std::iterator<std::output_iterator_tag, void, void, void, void> { std::basic_ostream<charT, traits>& os; charT const* delimiter; bool first_elem; public: infix_ostream_iterator(std::basic_ostream<charT, traits>& s) : os(&s), delimiter(0), first_elem(true) {} infix_ostream_iterator(std::basic_ostream<charT, traits>& s, charT const *d) : os(&s), delimiter(d), first_elem(true) {} infix_ostream_iterator<T, charT, traits>& operator=(T const &item) { // Insert delimiter before element unless it's the first if (!first_elem && delimiter != 0) *os << delimiter; *os << item; first_elem = false; return *this; } // ... };
Verwendung mit Infix Iterator:
#include "infix_iterator.h" // ... // Copy elements using infix iterator to insert commas std::copy(keywords.begin(), keywords.end(), infix_iterator(out, ","));
Das obige ist der detaillierte Inhalt vonWie drucke ich effizient durch Kommas getrennte Listen in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!