| 
	
		|  Autor | Tema: Emular una funcion de una cadena(Resuelto)  (Leído 8,652 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 | 3,163 |  18 Febrero 2008, 21:32 pm por The Shadow
 |  
						|   |   | Llamar a una funcion con una cadena Programación C/C++
 | diegoCmC | 3 | 4,151 |  7 Junio 2011, 20:38 pm por leogtz
 |  
						|   |   | [Resuelto]Funcion Como Llegar - GMaps Desarrollo Web
 | [u]nsigned | 2 | 3,949 |  11 Enero 2012, 18:45 pm por [u]nsigned
 |  
						|   |   | [RESUELTO][PYTHON] Leccion strip() retorna una cadena Scripting
 | LaThortilla (Effort) | 5 | 3,521 |  27 Marzo 2015, 00:41 am por LaThortilla (Effort)
 |  
						|   |   | [RESUELTO][PYTHON] -Convertir cadena en diccionario Scripting
 | LaThortilla (Effort) | 0 | 5,364 |  2 Septiembre 2015, 20:58 pm por LaThortilla (Effort)
 |    |