Maison >développement back-end >C++ >Comment puis-je séparer efficacement les chaînes délimitées par des virgules en C ?

Comment puis-je séparer efficacement les chaînes délimitées par des virgules en C ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-27 17:36:14276parcourir

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

Séparation de chaînes délimitées par des virgules à l'aide de Stringstream

Dans le problème fourni, la tâche consiste à séparer une chaîne délimitée par des virgules en jetons individuels. Bien que l'opérateur stringstream:: puisse séparer sans effort les mots par des espaces, il ne parvient pas à utiliser des virgules.

Pour surmonter ce défi, nous employons une approche modifiée :

#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;
}

Dans ce code modifié :

  • Nous utilisons std::getline au lieu de std::stringstream::operator>>. getline peut extraire des sous-chaînes jusqu'à un délimiteur spécifié (dans ce cas, une virgule).
  • Nous parcourons le flux d'entrée jusqu'à ce qu'aucun jeton ne soit trouvé.
  • Pour chaque jeton, nous l'imprimons sur une nouvelle ligne.
  • La sortie sépare avec précision la chaîne d'entrée en jetons individuels :

    abc
    def
    ghi

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn