Título: reemplazar caracter en cadena en C Publicado por: el_dorado en 2 Julio 2021, 19:51 pm Hola y buenas a todos.
he empezado hace poco con C y me he encontrado con el siguiente problema. quiero sustituir un caracter por otro dentro de una cadena. Lo he intentado de la siguiente manera. Código
cuando lo compilo no hay problema pero a la hora de ejecutarlo me salta "violacion del segmento ('core' generado)". PD: primer post ;D Título: Re: reemplazar caracter en cadena en C Publicado por: engel lex en 2 Julio 2021, 20:25 pm Código: char* x = "abc1efg"; http://c-faq.com/decl/strlitinit.html (http://c-faq.com/decl/strlitinit.html) este modo es guardado como un arreglo estático de caracteres por eso da violación de segmento cuando intentas accederla en escritura tendrías que declararlo Código: char x[] = "abc1efg"; Título: Re: reemplazar caracter en cadena en C Publicado por: AlbertoBSD en 2 Julio 2021, 21:14 pm Es cierto, es un arreglo estatico, Cuando un programa en C tiene chars constantes lo que se hace es, se les coloca en una zona de memoria de solo lectura
Código: ===== Memoria de Solo lectura ===== Y el apuntador *x Código
Esa operacion no es una copia sino una asignacion, basicamente dice que el apuntador x, apuntara a la direccion donde se encuentra la cadena abc1efg (Solo lectura) Por lo que como te comentaron, al momento de tratar de editar esa zona da como resultado el fallo de segmento. Si se cambia por Código
tal como te dijieron la cosa cambia, son esas pequeñas sutilezas del lenguaje que no te enseñan en la escuela y tienes que aprender de mala manera. Saludos Título: Re: reemplazar caracter en cadena en C Publicado por: el_dorado en 3 Julio 2021, 18:38 pm Código: char* x = "abc1efg"; http://c-faq.com/decl/strlitinit.html (http://c-faq.com/decl/strlitinit.html) este modo es guardado como un arreglo estático de caracteres por eso da violación de segmento cuando intentas accederla en escritura tendrías que declararlo Código: char x[] = "abc1efg"; muchisimas gracias,es un cambio sutil pero que de dolor de cabeza me a dado AJAJAJJA :xD :xD :xD Título: Re: reemplazar caracter en cadena en C Publicado por: el_dorado en 3 Julio 2021, 18:40 pm Es cierto, es un arreglo estatico, Cuando un programa en C tiene chars constantes lo que se hace es, se les coloca en una zona de memoria de solo lectura Código: ===== Memoria de Solo lectura ===== Y el apuntador *x Código
Esa operacion no es una copia sino una asignacion, basicamente dice que el apuntador x, apuntara a la direccion donde se encuentra la cadena abc1efg (Solo lectura) Por lo que como te comentaron, al momento de tratar de editar esa zona da como resultado el fallo de segmento. Si se cambia por Código
tal como te dijieron la cosa cambia, son esas pequeñas sutilezas del lenguaje que no te enseñan en la escuela y tienes que aprender de mala manera. Saludos muchas gracias por la info. y tanto que se aprenden de mala manera BUAJAJJA :xD :xD :xD |