strtok,strcpy,crashes when garbage strings are handled

this is especially so in winsock applications
in my application, i expect " value1^value2^value^&############"
and use strtok to extract value 1,2 and 3
and "&" indicates that there are no more values to be collected

where #### = garbaage
others can send a garbage long string like
"##################################"

and my application would crash

is there anyway to tell strtok/strcpy to handle this?

will a check on strlen help?

please assist