strstr
возвращает указатель на найденный символ, так что вы можете использовать арифметику указателя: (Примечание: этот код не проверен на его способность компилировать, он находится в шаге от псевдокода.)
char * source = "test string"; /* assume source address is */
/* 0x10 for example */
char * found = strstr( source, "in" ); /* should return 0x18 */
if (found != NULL) /* strstr returns NULL if item not found */
{
int index = found - source; /* index is 8 */
/* source[8] gets you "i" */
}