strings

Rotar cadenas a la izquierda o derecha con Python

Este post es sobre el lenguaje de programación Python y trata sobre cómo rotar una cadena determinadas posiciones a la izquierda o derecha.

Vamos a definir dos funciones que van a rotar una cadena N posiciones a la izquierda o a la derecha.

Esto de las rotaciones de cadenas lo vimos con el algoritmo Cesar en Python.

Nota: si quieres invertir una cadena mira este post.

Continue reading…

ROT 13 en Java – Algoritmo y algunas variantes como ROT 1

Hoy voy a explicar el código fuente para implementar el algoritmo de cifrado ROT 13 en Java.

El método de cifrado llamado ROT 13 rota las letras del alfabeto 13 posiciones. Son 13 veces porque 13 es la mitad de la longitud del alfabeto inglés (es decir, 26).

Debido a que rota las letras justamente a la mitad, el método para descifrar es el mismo que se utiliza para cifrar.

Es decir, al cifrar, la letra a se convierte en n. Y al cifrar de nuevo la n, se convierte en a, por lo que podemos concluir en que el mismo método sirve para cifrar y descifrar.

ROT 13 en Java y algunas variantes como ROT 1

ROT 13 es una variante del cifrado César (el cual ya implementé en Java) pero a diferencia de ROT 13, para descifrar usando el método César se necesita rotar la cadena a la izquierda.

Una vez explicado esto veamos el código y la explicación para implementar ROT 13 en Java.

También veremos algunas variantes de ROT 13 como ROT 1, y a partir de ello podremos ver cómo implementar ROT 2, ROT 3, etcétera (pues son rotaciones al final del día)

Continue reading…

Contar frecuencia de palabras que el usuario introduce

Contar frecuencia de palabras en C

Realizar conteo de ocurrencias de palabras en una oración con C

Ya estamos aquí con otro tutorial de C. Lo que haremos ahora será analizar una cadena o string, contar las palabras que tiene (ignorando puntos, espacios y signos) y luego agruparlas para indicar la frecuencia con la que se repiten.

Este ejercicio puede resolverse de varias maneras pero yo he decidido hacerlo a través de una pila en donde almacenaremos structs.

Aquí puedes ver un ejemplo de una pila de enteros, la modificaremos un poco para que funcione con structs.

¿Por qué una pila en lugar de un arreglo? muy fácil, porque la pila puede tener un tamaño infinito.

Al final generaremos una tabla como la que se ve en la imagen (aunque la frecuencia es 1 en la mayoría de veces, la función trabaja bien; el problema fue que la cadena de prueba no tenía muchas palabras repetidas):

Contar frecuencia de palabras de una oración con C

Contar frecuencia de palabras de una oración con C

 

Continue reading…

Separar cadena a partir de delimitadores en C con strtok

Resumen: en este post te mostraré a separar una cadena en subcadenas a partir de un delimitador, usando C y la función strtok; el equivalente a split en otros lenguajes.

Gracias a esto podríamos separar una cadena por comas, por puntos, por espacios, etcétera.

Dividir cadena en C por cada espacio, guión, coma, entre otros

En C no existe la función split como en otros lenguajes; en donde simplemente ponemos un delimitador y nos devuelve un arreglo; pero tenemos una función que incluso puede ser más poderosa.

Esta función de la que hablo (la cual se llama strtok) nos permitirá dividir una cadena usando un delimitador; por ejemplo una coma.

A partir de una cadena, podemos usar delimitadores para obtener tokens. Pongamos a la cadena “Hola, qué tal. Vamos a programar en C”; si la separamos usando el espacio, las comillas y los signos de puntuación obtendríamos las palabras limpias.

Por poner otro ejemplo, dada una lista delimitada por comas podemos obtener sus elementos. De “Juan,Pedro,María,Rosa” podemos obtener 4 nombres; usando la coma como delimitador.

Continue reading…

Cadena es igual que otra en Java

Comparar cadenas en Java usando equals y compareTo: la forma correcta

Introducción

Comparar strings o cadenas en Java es algo simple de hacer, pero que podemos hacer mal si no sabemos cuál es la forma correcta. Recordemos que Java trata a las cadenas como objetos, no como tipos primitivos.

Debido a eso, comparar cadenas en Java requiere algo más que usar el operador de igualdad ==.

Veamos hoy cómo podemos comparar cadenas, ya sea para saber si son equivalentes o para saber si una es menor o mayor que otra según el alfabeto.

Continue reading…

Cómo ordenar arreglos en JavaScript usando sort

Introducción

JavaScript es un lenguaje criticado por muchas personas, precisamente por sus métodos o maneras de hacer las cosas. Una de las cosas más criticadas es cómo ordenar arreglos en JavaScript.

Este lenguaje proporciona todo lo que necesitamos para ordenar arreglos, ya sean arreglos de cadenas, de enteros o incluso de objetos; porque nos permite definir una función de ordenamiento.

Pero bueno, vamos a ver algunos ejemplos para que quede claro. Ordenaremos en orden ascendente y descendente, arreglos de strings, de números y de objetos, usando el método sort.

Espero que después de este post no te queden dudas sobre cómo ordenar arrays. Cubriré los casos más comunes.

Finalmente quiero aclarar que esto funciona tanto en JavaScript del lado del navegador, como en JS del lado del servidor usando Node.JS.

Continue reading…

Comparar cadenas con strcmp en PHP

Introducción

Para comparar cadenas en PHP usamos la función strcmp que quiere decir algo como string compare. Esta función devuelve números, y dependiendo de ellos podemos saber si una cadena es mayor, menor o igual en PHP.

Veamos entonces esta función para saber si una cadena es igual, mayor o menor que otra. Para ello debemos saber cómo funciona el código ASCII y el alfabeto.

Continue reading…

Primera letra mayúscula y minúscula en PHP

Introducción

Esta entrada es muy simple, veremos cómo convertir la primera letra de una palabra en mayúscula o minúscula, y también cómo capitalizar una oración completa.

En pocas palabras, veremos cómo poner la primera letra mayúscula usando PHP.

Veremos cómo convertir la palabra “hola” a “Hola” y cómo convertir la oración “hola mundo” en “Hola Mundo”. PHP ya tiene estas funciones incorporadas, así que esto será fácil.

Por cierto, esto también es llamado capitalización de texto o algo así.

Continue reading…