et pourquoi pas

strcat(ret_str, str2);
strcat(ret_str, str3);

à la place de

strcpy(&ret_str[strlen(str1)], str2);
strcpy(&ret_str[strlen(str1) + strlen(str2)], str3);...