je la chaîne suivante:analyse syntaxique/occurrence de chaîne correspondant en C
const char *str = "\"This is just some random text\" 130 28194 \"Some other string\" \"String 3\""
Je voudrais obtenir le nombre entier 28194
bien sûr l'entier varie, donc je ne peux pas faire strstr("20194")
.
Alors je me demandais ce qui serait un bon moyen d'obtenir cette partie de la chaîne?
Je pensais utiliser #include <regex.h>
dont j'ai déjà une procédure pour faire correspondre les regexp mais je ne sais pas comment l'expression rationnelle dans C ressemblera à la notation de style POSIX. [:alpha:]+[:digit:]
et si la performance sera un problème. Ou sera-ce mieux en utilisant strchr,strstr
?
Toutes les idées seront apprécient
Merci, cela semble faire le travail plutôt bien. Des problèmes de performances peuvent-ils survenir en utilisant regexp au lieu de l'analyse de chaîne? Je suis en train d'analyser ~ 1M lignes – David
Je pense que regex est une approche valide ici. L'expression régulière ne devrait pas du tout faire marche arrière. Notez que vous ne devez compiler qu'une fois l'expression régulière, et vous pouvez également réutiliser le tableau 'matches'. Comme toujours, profil pour être sûr. –