*(s1+i)='\0'; is equavalent to s1[i] = '\0'; so yes that's just an alternative (less readable) way of referring to array indices.

Mind you the code itself is basically nonsense... nothing you're likely to see in real world progamming... or, at least, one would hope not.