elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 132
61  Programación / Programación C/C++ / Re: Sustituir cada palabra de 4 letras con asteriscos(lenguaje c) en: 8 Agosto 2014, 05:59 am
Es mejor mantenerse con la versión con centinela ya que a cambio de dos asignaciones fuera del bucle te ahorras la comparación dentro de este.
............................................................................................

Estaré "espeso" pero no veo que me salga del array, en todo caso veo que llego al caracter nulo pero no más allá.


Otra alternativa consiste en utilizar la función strcspn para encontrar el siguiente carácter igual a ' ' o '\0' y la función memset para imprimir los cuatro espacios (los prototipos de ambas en <string.h>).


Por cosa como esas es por lo que te echaba de menos últimamente "maestro".  ;-)

Como Blaster se me adelantó, mi propuesta es una "mezcla, uso memset para copiar los asteriscos y sigo usando mi propia "strcspn" y con el mismo y escueto número de líneas:

Código
  1. ***************************************************
  2.  
  3. char frase[] = "123456  23789 1234 3213  986   5679";
  4.  
  5.  for( i = 0 ;  frase [ i ] ; i++  )
  6.    if ( ( iNoEspacio = ( frase [ i ] !=  ' ' ) ?  iNoEspacio + 1 : 0 ) == 4  && ( frase [ i + 1 ] ==  ' ' || frase [ i + 1 ] ==  '\0') )
  7.      memset ( frase + i - 3 , '*' , 4 ) , cont++ ;
  8.  
  9.  printf( "\n    Cadena final.: %s\n\nY contiene %d palabras de cuatro letras.\n\n\n" , frase, cont) ;
  10.  
  11. **********************************************************

Hola a todos.
Me gusta esta triada, rir3760 la idea, Blaster la materializa y Leo el vigilador, observador, corregidor
..........................................................................................

Gracias a tí Daniel por querer compartir conocimientos y, como no, a Blaster y rir3760 por los "bellos" aportes que han realizado y el espíritu de sana competencia que nos lleva a enriquecernos a todos, al menos intelectualmente.

Y sí, creo que entre todos los usuarios de este foro formamos un buen equipo, y eso que he echado de menos a eferion y vangdop, etc.... y al ya lejano amchacon. Esto último sí que me duele, espero que se anime y vuelva por este foro.

..........................................................................................
Después de esto tengo que implementar un programa con números mágicos, si no lo logro por mi cuenta les pediré ayuda.-     
............................................................................................

Eso me alegra de manera especial ya que yo soy más de números que, como este tema, de letras. Esperaremos impacientes tus aportes y/o dudas al respecto.

Un fuerte abrazo, campeón.

¡¡¡¡ Saluditos! ..... !!!!


62  Programación / Programación C/C++ / Re: Sustituir cada palabra de 4 letras con asteriscos(lenguaje c) en: 7 Agosto 2014, 22:46 pm
Me gusto la idea de rir3760 la implemente de esta manera:
......................................................................
  
Código
  1. else if (s1[ i + 4 ] == ' ' && i == 0)
  2.      memset( s1 + i, '*', 4 ),
  3.      cont++;
..................................................

......................................................................

Sólo que el else-if está exclusivamente para el la posible primera palabra y podría ser más propio:

Código
  1. else if (s1[ 4 ] == ' ' )
  2.      memset( s1 + 0, '*', 4 ),cont++;

Peo al César lo que es del César, lo has bordado.  ;)

¡¡¡¡ Saluditos! ..... !!!!


63  Programación / Programación C/C++ / Re: Multiplicacion de matrices Anxk y Bkxm en: 7 Agosto 2014, 18:59 pm
Ya se habia inicializado previamente todos sus elementos a cero en el main   

Cierto, ni había mirado la función main. Sorry¡.

Y totalmente de auerdo con lo expuesto por ivancea96 y eferion.

¡¡¡¡ Saluditos! ..... !!!!


64  Programación / Programación C/C++ / Re: Sustituir cada palabra de 4 letras con asteriscos(lenguaje c) en: 7 Agosto 2014, 17:21 pm
Va bien pero no tiene en cuenta si la ultima palabra es de cuatro caracteres y no tiene un espacio entre el ultimo carácter y el carácter nulo

Saludos
Pues a corregirlo.  ;)

EDITO:

Es que ese caracter nulo  ;D:

Edité el mensaje anterior, pero lo que modifiqué fue la línea:

Código
  1. if ( iNoEspacio == 4  && ( frase [ i+1 ] ==  ' ' || frase [ i+1 ]==  '\0') )

para tener en cuenta al nulo.  ;-)

65  Programación / Programación C/C++ / Re: Multiplicacion de matrices Anxk y Bkxm en: 7 Agosto 2014, 17:16 pm
Lo de & es verdad, pero el:

Código
  1. c[ i ][ j ] = 0 ;

No le veo la utilidad creo que es innecesario


Como es una variable acumulador si no está inicializada, "creo, ¡eh!", puede contener basura a la que se irían añadiendo los valores que va sumando.

Lo veo como hacer:

Código
  1.  int num ;
  2.  num += 5 ;
  3.  printf ( "%d" , num ) ;

Como num no está inicializado su valor es impredecible, aunque hay algunos compiladores que por defecto inician las variables a cero, y al sumar 5 el resultado es "rarito".

¡¡¡¡ Saluditos! ..... !!!!


66  Programación / Programación C/C++ / Re: Multiplicacion de matrices Anxk y Bkxm en: 7 Agosto 2014, 16:49 pm
Yo "creo" que más bien:

Código
  1.  void MulMatrizAB ( MatrizA a , MatrizB b , MatrizC c ) {
  2.   for ( int i = 0 ; i < N ; i++ )
  3.     for ( int j = 0 ; j < M ; j++ ) {
  4.       c[ i ][ j ] = 0 ;
  5.       for ( int h = 0 ; h < K ; h++ )
  6.         c[ i ][ j ] += ( a[ i ][ h ] * b[ h ][ j ] ) ;
  7.     }
  8. }

Sobra el operador & de c.

¡¡¡¡ Saluditos! ..... !!!!


67  Programación / Programación C/C++ / Re: Sustituir cada palabra de 4 letras con asteriscos(lenguaje c) en: 7 Agosto 2014, 16:34 pm
Inconveniente solventado ahora va de maravilla edite el código de arriba  

Saludos

Perfecto, ahora va como la seda.  ;-) ;-)

Y con una línea más a cambio de no usar función alguna:

Código
  1. ***************************************************
  2.  
  3.  char frase [ ] = "1234  23789 1234 321  9876 5679";
  4.  for( i = 0;  frase [ i ]; i++  ){
  5.    iNoEspacio = ( frase [ i ] !=  ' ' ) ?  iNoEspacio + 1 : 0 ;
  6.    if ( iNoEspacio == 4  && ( frase [ i+1 ] ==  ' ' || frase [ i+1 ]==  '\0') ) {
  7.      for ( k = i  ; k >= i - 3  ; k-- ){
  8.        frase [ k ] = '*'  ;
  9.      }
  10.    iNoEspacio = 0 , cont++ ;
  11.    }
  12.  }
  13.  
  14. **********************************************************

Espero que esto nos sirva a todos  para que ver que soluciones "haberlas haylas " y que tan sólo es cuestión del momento que salga una a bote pronto pero hay que analizar las distintas opciones en busca de la más eficiente.  ;)

¡¡¡¡ Saluditos! ..... !!!!


68  Programación / Programación C/C++ / Re: [Sugerencia] Concursillo C++ en: 7 Agosto 2014, 01:02 am
Me parece bien. Además creo que sería conveniente realizar varias ejecuciones de un mismo programa (por ejemplo, cinco) y hacer la media de los tiempos.

Respecto al problema, ¿tienes alguno en mente? Yo había pensado que sería chulo un problema de grafos ^^.

Que tal el movimiento de un caballo en un tablero de ajedrez de forma que recorra todas las casillas......aunque no necesariamente habría que aplicar grafos.  :silbar:

Saluditos!.
69  Programación / Programación C/C++ / Re: Sustituir cada palabra de 4 letras con asteriscos(lenguaje c) en: 7 Agosto 2014, 00:59 am
Otra forma, usando la función strchr:
..............................
Saludos

¿Pero no quedamos en que íbamos a implementar nuestras propias funciones?  :laugh:

Es broma.

Está muy bien pero a mí me falla, y ya lo digo con miedo a equivocarme, porque si el primer espacio es un espace  y la primera cadena es de cuatro no la cambia por asteriscos:

Código
  1.  
  2. Cadena original.:  1234   789 1234 321  9876 5678
  3.  
  4. Cadena reemplazada.:  1234   789 **** 321  **** ****
  5.  
  6. Se han sustituido un total de 3 palabras.
  7.  
  8. Process returned 0 (0x0)   execution time : 0.025 s
  9. Press any key to continue.
  10.  


¡¡¡¡ Saluditos! ..... !!!!


70  Programación / Programación C/C++ / Re: Espacios en concatenación strcat. en: 7 Agosto 2014, 00:07 am
No estoy hablando de una función concreta... hablo en general.

 Al final, por este camino, tu código acabaría siendo poco eficiente y no portable.... y ese no es el camino.

Pues usemos dichas funciones. Como ejemplo:

Código
  1. char *my_strcat( char *s , char esp , char *cad ) {
  2.  sprintf ( s , "%s %s" , s , cad)  ;
  3.  return( s ) ;
  4. }


¡¡¡¡ Saluditos! ..... !!!!



Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 132
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines