dt_Handle pattern, molecule, pathset;
dt_Integer slen, pcount;
/* Read SMARTS in. */
pattern = dt_smartin(2, "Oa");
/* Optimized for matches on typical molecules. */
str = dt_smarts_opt(&slen, 2, "aO", 0);
printf("The optimized SMARTS expression is %.*s.\n", slen, str);
/* The aromatic oxygen pattern and hydroquinone have
matching paths. */
molecule = dt_smilin(12, "Oc1ccc(O)cc1");
pathset = dt_match(pattern, molecule, 0);
pcount = dt_count(pathset, TYP_PATH);
printf("There are %d oxygen-aromatic atom paths in hydroquinone.\n", pcount);
The optimized SMARTS expression is Oa.
There are 2 oxygen-aromatic atom paths in hydroquinone.