Pour transformer la chaîne d'entrée thecapital([x], implies(maincity(y),x))
à la chaîne de sortie implies(maincity(y),x))
vous pouvez utiliser la fonction simple:
const char *
transform(const char *expr) {
return expr + 16;
}
Il n'utilise des expressions régulières, mais d'autre part, il est rapide comme l'éclair. Ou peut-être que vous n'avez pas posé votre question clairement. Par exemple, vous n'avez pas décrit en mots ce que la transformation devrait être faite. Donner juste un exemple ne suffit pas.
Alors qu'est-ce que vous voulez vraiment faire :?
- Passer les 16 premiers caractères de la chaîne d'entrée
- tout retour après le premier caractère de l'espace
- tout retour après le dernier caractère de l'espace
- Retour le suffixe de l'argument en commençant par la deuxième
i
- Retour
"implies(maincity(y),x))"
- Renvoyer le second argument entre parenthèses, suivi d'une parenthèse fermante supplémentaire
Pour votre exemple, ma fonction simple proposée répond à toutes ces exigences. Mais bien sûr, il échouera désespérément lorsqu'on lui donnera une autre contribution.
Voir http://stackoverflow.com/questions/725630/regular-expressions-in-c – gimel
Bien sûr, vous devez utiliser des expressions régulières? Pourquoi ne pas utiliser strtok() pour diviser la chaîne en ","? – helpermethod
Que se passe-t-il si les deux "x" ne sont pas identiques? –