Hace tiempo tuve la necesidad de hacer una función de cambios de base, pero que no estuviera limitada, es decir, no tuviera definido qué base vamos a introducir y qué base debe devolver. Es decir, convertiremos un número en base b1 a base b2; la limitación, el número de caracteres con los que contemos, en el ejemplo hay hasta base 36, y es fácil extenderlo hasta base256… un número en hexadecimal no tiene desde el 0 al 9 y de la A a la F, pues un base36, del 0 al 9 y de la A a la Z.… Leer artículo completo
Cambio de base (de base b1 a b2… hasta base36 o tal vez más)
Volteando cadenas
En C, una de las pequeñas cosas que a veces nos hace más lentos a la hora de hacer un pequeño programa es la posibilidad de darle la vuelta a una cadena. Bien, aquí traigo un pequeño código (función y ejemplo) de strrev, que además de poder dar la vuelta a una cadena, puede manipular sólo ciertos caracteres:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38#include <stdio.h>
#include <string.h>
char *strrev(char *str, int strl)
{
/* Creamos punteros al principio y al final de la cadena */
/* C A R A C T E R 5 \0 */
/* | | */
char *start = str, *end = str + strl - 1;
char temp;
/* Iteramos hasta que el principio y el fin coincidan */
while(start < end)
{
/* Intercambiamos los caracteres */
/* 1º C A R A C T E R 5 */
/* 2º 5 A R A C T E R C */
/* 3º 5 R R A C T E A C */
/* 4º 5 R E A C T R A C */
/* 4º 5 R E T C A R A C */
temp = *start;
*start++ = *end;
*end-- = temp;
}
return str;
}
/* Ejemplo */
int main()
{
char cadena[50]="Una cadena de caracteres cualquiera";
char tmp[50]="Una cadena de caracteres cualquiera";
char *cad2=cadena;
printf("Cadena original: %s\n", cadena);
printf("Cadena al revés: %s\n", strrev(tmp, strlen(tmp)));
strrev(cadena+14, 10);
printf("Caracteres al revés: %s\n", cad2);
return 0;
}Esta función la encontré hace mucho tiempo navegando y me pareció muy interesante, sobre todo por cómo está hecha, creo que es de las más rápidas.… Leer artículo completo
Últimos comentarios