文字列のコピーにはstrcpyを使います。末尾の\0も含まれるので文字数は1つ以上多くしないとエラーになります。
当初はこれを知らなくて等式でコピーしようとしていました。コンピュータの仕組みを分かっていないと手詰まりになりますね。
<過去コードの該当箇所>
char horseID[10]; // horseIDは9文字だが末尾の\0も入れて10文字とする
char id[10]
if (i != 0){
if (strcmp(horse_name,horse_name_in)==0){
strcpy(id,horseID);
printf("コピー完了 %s\n",id);
}
}