Вы можете сделать это, вызвав strstr в цикле (стог сена ссылается на строку, которую вы ищете в «213 Статус файла 550 Доступ запрещен. 550 Доступ запрещен», а игла ссылается на строку, которую вы ищете «550») :
unsigned int count = 0;
const char *next = haystack
while ((next = strstr(next, needle)) != NULL)
{
++count;
++next;
}
Если два экземпляра вашей иглы могут чрезмерно друг друга (поэтому вы ищете «555», а в строке есть «5555», это будет считать два экземпляра). Если вы не хотите этого, вы должны изменить ++next
на next += strlen(needle);