Eliminar caracteres de una cadena en C

Solo tengo acceso a 'C' y necesito reemplazar los caracteres dentro de una matriz de caracteres. No he encontrado ninguna solución limpia para este procedimiento relativamente simple.

Me pasa una matriz de caracteres, por ejemplo:

char strBuffer[] = "/html/scorm12/course/course_index.jsp?user_id=100000232&course_id=100000879&course_prefix=ACQ&version=2&scorm_version=3&roster_id=100011365&course_name=Test%20Course%201.2&mode=browse&course_number=0000&mode_id=1";

Necesito modificar este búfer para reemplazar todos los& con&. El búfer resultante no tiene que sobrescribir strBuffer (se puede crear un búfer nuevo).

¿Alguna sugerencia?

Editar:

En el pasado, he hecho la función strstr en un bucle, pero estaba buscando una solución más simple, tal vez la C equivalente al método String.Replace.

Editar:

Para mis necesidades inmediatas, lo siguiente es todo lo que necesito.

char strBuffer[] = "/html/scorm12/course/course_index.jsp?user_id=100000232&course_id=100000879&course_prefix=ACQ&version=2&scorm_version=3&roster_id=100011365&course_name=Test%20Course%201.2&mode=browse&course_number=0000&mode_id=1";
char strTemp[1024];
char *s = (char*)strBuffer;
int i=0;

while (*s)
{
    strTemp[i++] = *s;
    if (strncmp(s,"&",5) == 0)
    {
        s += 5;
    }
    else
        s++;
}
strTemp[i] = 0;

Modificaciones futuras:

Crea una función de utilidad para almacenar esta función.Pase la cadena de búsqueda como un parámetro.Determine la longitud de la cadena de búsqueda, por lo que los 5 codificados pueden eliminarse.Asignar dinámicamente la variable strTemp.Error en la comprobación de cadenas vacías y caracteres no encontrados.

EDITAR:

Creé una publicación de blog para detallar los pasos y proporcionar una solución más flexible:

http://www.solutionmaniacs.com/blog/2012/11/25/c-removereplace-characters-in-a-string.html

Respuestas a la pregunta(4)

Su respuesta a la pregunta