Я смотрю на пример для strchr() на: http://www.cplusplus.com/reference/cstring/strchr/strchr(), Как это правильно найти индекс полукокса
Почему это правильно найти индекс? Наглядно это выглядит, как он должен давать отрицательный индекс:
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "This is a sample string";
char * pch;
printf ("Looking for the 's' character in \"%s\"...\n",str);
pch=strchr(str,'s');
while (pch!=NULL)
{
printf ("found at %d\n",pch-str+1);
pch=strchr(pch+1,'s');
}
return 0;
}
Но было бы все еще верным, если бы вы попробовали его с указателем на кучу? –
Значит, адрес 'pch' указывает на минус адрес' str'? – asimes
@SamDufel Да, он работает с любой смежной частью памяти с 0-символом. – cnicutar