Этот код является substr функцией, которая имитирует функцию с тем же именем, присутствующую в других языках, просто анализ: строка, начало и количество символов, например:
printf( "SUBSTR: %s", substr("HELLO WORLD!",2,5) );
Выше будет напечатано Привет. Если вы передадите значение по всей длине строки, оно будет игнорироваться, так как цикл только повторяет длину строки.
char *substr(char *s, int a, int b) {
char *r = (char*)malloc(b);
strcpy(r, "");
int m=0, n=0;
while(s[n]!='\0')
{
if ( n>=a && m<b ){
r[m] = s[n];
m++;
}
n++;
}
r[m]='\0';
return r;
}