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