>>848
s1、s2 が長さ 0だった場合に、*p1='\0'; *p2='\0'; がコケる。

つーか、スピードが問題で無いなら素直にライブラリ関数使い倒せ。

char *str_cat_chr(char *s1,char *s2,int c)
{
char *p1 = strchr(s1, c);
char *p2 = strchr(s2, c);
if(p1) *p1 = '\0';
if(p2) *p2 = '\0';
return strcat(s1, s2);
}