for the for loop
for ( ; *source!='\0'; source++)
what is the purpose of the semicolon in the for loop ?
(1) The language specification requires them. (2) they separate initialization, condition, and increment statements.
in a normal loop you would have
for( i = 0; i < n; i++) but in your code the semicolon simply states that it doesnt matter what the first section(
i = 0 ) is.
 What AD said. lol.
All of the sections are optional, so we sometimes end up with this: