Red de conocimientos turísticos - Información de alquiler - Una pregunta sobre programación en lenguaje C, no puedo encontrar el error, por favor pregúntele a un maestro
Una pregunta sobre programación en lenguaje C, no puedo encontrar el error, por favor pregúntele a un maestro
El problema con la sentencia for?(j?=?0;?j?lt;N?-?1;?j) se mueve al final cuando la longitud de la cadena no es tan grande . Simplemente cámbielo a for?(j?=?0;?j?lt;?strlen(w)?-?1;?j).
De hecho, existe una solución más sencilla: utilizar memcpy para copiar directamente la memoria. void?fun(char*?w, ?int?m)
{
int?len?=?strlen(w);
char*? tmp?=?(char*)malloc(sizeof(char)*N);
memset(tmp,?0,?N);
memcpy(tmp,?w, ?N);
memcpy(w, ?tmp? ?m, ?len?-?m);
memcpy(w? ?m, ?tmp, ?m);
gratis(tmp);
}