Autor
|
Tema: Emular una funcion de una cadena(Resuelto) (Leído 7,589 veces)
|
Dark Invader
Desconectado
Mensajes: 111
Lucha hasta el final para conseguir tu objetivo.
|
¿Te refieres a... void cortarcadena(char *frase,char *caracter) { char *p = frase; char *q = caracter; char c_ori[30]=""; char *r = c_ori; char c_temp; while(*p) *q == *p ? c_temp = *p++ : (*r++ = *p++); }
He unido la cadena al puntero r
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Me refería a esto: #include <stdio.h> void cortarcadena(char *frase,char caracter) { char *p = frase, c_ori[30] = "", *r = c_ori; while(*p) caracter == *p ? *p = *p++ : (*r++ = *p++); } int main(void) { char frase[81], c; cortarcadena(frase, c); return 0; }
Ok, una última: void cortarcadena(char *frase,char caracter) { char *p = frase, c_ori[30] = "", *r = c_ori; for(; *p; caracter == *p ? *p = *p++ : (*r++ = *p++)); }
|
|
« Última modificación: 4 Julio 2011, 23:47 pm por Leo Gutiérrez. »
|
En línea
|
|
|
|
Dark Invader
Desconectado
Mensajes: 111
Lucha hasta el final para conseguir tu objetivo.
|
Nunca habia visto usar el for asi: for(; *p; caracter == *p ? *p = *p++ : (*r++ = *p++));
¿Se puede utilizar la ultima fila del for con todo eso? Es que nunca lo habia utilizado asi... Gracias por las formas,estoy tomando nota de todas Salu2
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Nunca habia visto usar el for asi: for(; *p; caracter == *p ? *p = *p++ : (*r++ = *p++));
¿Se puede utilizar la ultima fila del for con todo eso? Sí, queda medio críptico el código, pero más corto, pero pierde legibilidad
|
|
|
En línea
|
|
|
|
Dark Invader
Desconectado
Mensajes: 111
Lucha hasta el final para conseguir tu objetivo.
|
Una ultima cosa Leo,perdon por alargar el tema mas de la cuenta,no seria...: for(; *p; caracter == *p ? c_temp = *p++ : (*r++ = *p++)); Es que *p=*p++ no me suena bien,a lo mejor he sido yo el que no lo he entendido...
|
|
|
En línea
|
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Es que fíjate que en tu código c_temp no lo utilizas para nada (no tiene utilidad), así que con simplemente avanzamos, al igual que lo hace *p++. for(; *p; caracter == *p ? *p = *p++ /* Simplemente avanzados*/ : (*r++ = *p++));
como no podemos poner: for(; *p; caracter == *p ? *p++ /* Simplemente avanzados, no asignación ni nada */ : (*r++ = *p++));
porque daría error, he utilizado: for(; *p; caracter == *p ? *p = *p++ /* Simplemente avanzados, no asignación ni nada */ : (*r++ = *p++));
Para que lo acepte el compilador.
|
|
|
En línea
|
|
|
|
Dark Invader
Desconectado
Mensajes: 111
Lucha hasta el final para conseguir tu objetivo.
|
Es verdad,tienes toda la razon,la cadena c_temp la utilizaba como temporal,para pasar los argumentos que no servian y desecharlos de la cadena,pero asi mucho mejor,muchas gracias Leo,he aprendido muchas cosas. Gracias de nuevo,mirare de nuevo todo el tema para asimilarlo bien,ya que ha habido muchos cambios. Salu2
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[batch] Funcion :len (devuelve la longitud de una cadena)
Scripting
|
The Shadow
|
0
|
2,885
|
18 Febrero 2008, 21:32 pm
por The Shadow
|
|
|
Llamar a una funcion con una cadena
Programación C/C++
|
diegoCmC
|
3
|
3,785
|
7 Junio 2011, 20:38 pm
por leogtz
|
|
|
[Resuelto]Funcion Como Llegar - GMaps
Desarrollo Web
|
[u]nsigned
|
2
|
3,730
|
11 Enero 2012, 18:45 pm
por [u]nsigned
|
|
|
[RESUELTO][PYTHON] Leccion strip() retorna una cadena
Scripting
|
LaThortilla (Effort)
|
5
|
3,111
|
27 Marzo 2015, 00:41 am
por LaThortilla (Effort)
|
|
|
[RESUELTO][PYTHON] -Convertir cadena en diccionario
Scripting
|
LaThortilla (Effort)
|
0
|
5,177
|
2 Septiembre 2015, 20:58 pm
por LaThortilla (Effort)
|
|