Concatenar cadenas o string verticalmente

Iniciado por Flamer, 10 Julio 2017, 22:32 PM

0 Miembros y 1 Visitante están viendo este tema.

Flamer

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 (xml) [Seleccionar]

cadena3=cadena1 + cadena2


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


engel lex

Ningun lenguaje que conozco tiene eso por default, porque no tiene valor práctico tenerlo preconfigurado...

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

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Flamer

#2
es lo quiero hacer, y por que quiero ahorrarme el ciclo que tu estas asiendo

saludos Flamer

engel lex

#3
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
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
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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Flamer

 
Cita de: engel lex en 10 Julio 2017, 22:37 PM
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

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

engel lex

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


El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

ivancea96

"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.