Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: Flamer en 10 Julio 2017, 22:32 pm



Título: Concatenar cadenas o string verticalmente
Publicado por: Flamer en 10 Julio 2017, 22:32 pm
hola amigos hoy se me ocurrió una idea y es que común mente en cualquier lenguaje de programación si queremos concatenar 2 cadenas se ase lo siguiente

Nota: puse el signo mas para que se entendiera, no me estoy refiriendo a ningún lenguaje en particular

Código
  1. cadena3=cadena1 + cadena2
  2.  

si cadena1 vale "01234" y cadena2 vale "56789" entonces el resultado de cadena3 seria "0123456789" eso es para todos los lenguaje


ahora volbiendo al tema, si tenemos que cadena1 es igual a
"
0
1
2
3
4
"

y cadena2 es igual a

"
5
6
7
8
9
"
ahora hacemos la concatenación que no se como es y es lo que quiero que me digan si se puede, quiero que el resultado sea este
"
05
16
27
38
49
"

a eso me refiero si se puede hacer

saludos Flamer



Título: Re: Concatenar cadenas o string verticalmente
Publicado por: engel lex en 10 Julio 2017, 22:37 pm
Ningun lenguaje que conozco tiene eso por default, porque no tiene valor práctico tenerlo preconfigurado...

Usualmente lo que haces es
Código:
para i desde 0 hasta largo_texto{
  Imprimir texto1[i]
  Imprimir texto2[i]
  Imprimir '\n'
}


Título: Re: Concatenar cadenas o string verticalmente
Publicado por: Flamer en 10 Julio 2017, 22:40 pm
es lo quiero hacer, y por que quiero ahorrarme el ciclo que tu estas asiendo

saludos Flamer


Título: Re: Concatenar cadenas o string verticalmente
Publicado por: engel lex en 11 Julio 2017, 02:48 am
inevitablemente tiene que haber ciclo ya sea implicito o explicito... porque "vertical" implica un caracter adicional que se tiene que agregar (salto de linea) y unión de letras intercaladas antes de ese salto

es decir en lugar de ser
Código:
t1 = "abcdef"
t2 = "012345"
t3 = reservar_memoria( largo(t1) + largo(t2) + 1)
copiar_memoria(t1 en t3, empezando en 0)
copiar_memoria(t1 en t3, empezando en largo(t1))
t3 en posición largo(t1) + largo(t2) colocar \0

sería (ssabiendo que son iguales de largas
Código:
t1 = "abcdef"
t2 = "012345"
t3 = reservar_memoria( largo_cadenas*3 + 1)
t3 en posición 0 colocar t1 en posición 0
t3 en posición 1 colocar t2 en posición 0
t3 en posición 2 colocar \n
t3 en posición 3 colocar t1 en posición 1
t3 en posición 4 colocar t2 en posición 1
t3 en posición 5 colocar \n
t3 en posición 6 colocar t1 en posición 2
t3 en posición 7 colocar t2 en posición 2
t3 en posición 8 colocar \n
...etc...

creo que entiendes la diferencia... y eso sin contar el caso donde no sean iguales


Título: Re: Concatenar cadenas o string verticalmente
Publicado por: Flamer en 11 Julio 2017, 03:18 am
 
porque no tiene valor práctico tenerlo preconfigurado...



no creo que tenga que ver salto ya que lo hay entre las dos cadenas

pero a lo mejor no me entiendes, tu dices que no es practico y lo que entiendo con eso de que una función así es inútil e innecesaria, pues te cuento que si lo hubiera se pudieran crear  diccionarios mas largos de los que las maquinas actuales pueden hacer hoy en día.

me tomaras a loco pero por hay vi este hilo

http://foro.elhacker.net/buscador-t325748.0.html (http://foro.elhacker.net/buscador-t325748.0.html)

y pues yo quise hacer mi propio creador de diccionarios y mi meta es hacerlo con las claves mas largas posibles y es con eso con lo que estoy atorado

si estuviera esa función se pudieran crear diccionarios solo concatenando

saludos Flamer y me tomaras a loco pero en fin haya tu, solo he chale pluma


Título: Re: Concatenar cadenas o string verticalmente
Publicado por: engel lex en 11 Julio 2017, 03:30 am
no es practico tenerlo preconfigurado, porque inflar la estructura basica del lenguaje con una función que se usa en casos muy especificos no vale la pena... tuvieramos lenguajes innecesariamente pesados, llenos de funciones factoriales, concatenaciones poco comunes, etc....

por otro lado creo que ves la dificultad que conlleva la operación, porque la que requiere ciclo si o si, ya sea implementado implícitamente o explicitamente

por cierto... necesito recordarte las matemáticas tras un "diccionario" de fuerza bruta? (un inteligente muy poco inteligente)

en tal caso aquí hay un trabajo muy bueno de kubox

https://foro.elhacker.net/buscador-t468239.0.html (https://foro.elhacker.net/buscador-t468239.0.html)




Título: Re: Concatenar cadenas o string verticalmente
Publicado por: ivancea96 en 15 Julio 2017, 13:58 pm
"a
b
c
d"

Esta cadena, para la utildiad que buscas, se puede convertir simplemente a "abcd", puesto que los saltos de línea serían redundantes para la utilidad que buscas.

Por tanto, "abcd" + "1234" =
"a1
b2
c3
d4"
Nuevamente, esto también sería redundante. Si buscas hacer diccionarios, los saltos de línea sobran, y sería: "a1", "b2", "c3", "d4". La primera "palabra" sería cadena1[0] + cadena2[0], sin más. Suponiendo que sea eso lo que buscas.