Extraire des données numériques à partir de chaînes délimitées par des virgules en C
L'analyse de données à partir de chaînes séparées par des virgules dans des tableaux numériques présente un défi courant en programmation . Pour le cas spécifique des nombres entiers, C propose plusieurs approches simples.
Algorithme d'analyse de base :
Une méthode simple consiste à parcourir la chaîne caractère par caractère. Pour chaque caractère, vérifiez si le caractère suivant est une virgule. Si c'est le cas, supprimez la virgule. Sinon, convertissez le caractère en entier et stockez-le dans le tableau.
Utilisation d'istingstream :
La bibliothèque standard C propose la classe istringstream pour analyser les flux d'entrée. Pour extraire des nombres d'une chaîne délimitée par des virgules, créez un objet istringstream avec la chaîne en entrée. Ensuite, utilisez l'opérateur d'extraction de flux >> pour extraire chaque numéro un à la fois.
Implémentation :
L'extrait de code suivant illustre l'algorithme d'analyse de base utilisant 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; }
Autres options :
Pour des scénarios d'analyse plus complexes, le C La bibliothèque standard fournit des options supplémentaires, telles que la fonction strtok et les expressions régulières. Cependant, pour de simples listes d'entiers délimités par des virgules, les méthodes ci-dessus sont généralement suffisantes et simples à mettre en œuvre.
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!