Anuncios

Bienvenidos sean a este post, hoy veremos como modificar nuestros caracteres con codigo.

Anuncios

Hoy veremos un tema de lo cual algo ya vimos en este post cuando hablamos de los operadores sobre los caracteres, en ese caso vimos como podiamos cambar el caracter en base a operaciones matematicas, ya sea de adicion, sustraccion o multiplicacion, por lo tanto gracias a ello podemos hacer la siguientes acciones:

  • Devolver el valor de un caracter
  • Convertir una letra a minuscula
  • Convertir una letra a mayuscula
Anuncios

Para entender esto vamos a hacer un nuevo ejemplo, para ello crearemos un nuevo archivo que llamaremos ejemplo21.c y le agregaremos el siguiente codigo:

ejemplo21.c

#include <stdio.h>

int chr(int c);
int achicar(int c);
int agrandar(int c);

int main()
{

}
Anuncios

Esta va a ser la estructura basica donde declaramos unos prototipos para nuestras funciones y por el momento un main vacio, procedamos a definir la primer funcion y para ello agregaremos el siguiente bloque despues del main:

int chr(int c)
{
	return c;
}
Anuncios

Esta primera funcion sera la que usaremos para saber cual es el valor del entero que representa al caracter, como dijimos en este post el lenguaje siempre los interpreta como enteros por lo tanto si la funcion devuelve un valor de tipo int simplemente devolviendo el caracter informado y luego veremos como representarlo, pasemos a definir la segunda funcion agregando el siguiente bloque:

int achicar(int c)
{
	if (c >= 65 && c <= 90)
		return c+=32;
	return c;
}
Anuncios

Esta sera la funcion encargada de convertir el caracter informado en minusculas, si corresponde, para ello primero tendremos un condicional donde verifica si el caracter informado esta en el rango de las letras en mayusculas y en caso de ser verdadero devolvera el valor tras incrementar en 32 al caracter informado, lo cual lo convertira a minusculas, por ultimo si la condicion no se cumple es porque no debemos modificarlo y devolvermos el caracter informado, pasemos a definir la tercera funcion y para ello agregaremos el siguiente bloque:

int agrandar(int c)
{
	if (c >= 97 && c <= 122)
		return c-=32;
	return c;
}
Anuncios

Este es muy similar al anterior, por no decir identico, pero en este caso cambiamos el rango por las letras en minusculas, en caso de cumplirse procede a restarle 32 para cambiarlas a mayusculas y al igual que en el caso anterior si no se cumple devolveremos el caracter informado, por ultimo modificaremos el main de la siguiente manera:

int main()
{
	char caracter = 'A';

	printf("Caracter: %c\n", caracter);
	printf("chr: %i\n", chr(caracter));
	printf("achicar: %c\n", achicar(caracter));
	printf("agrandar: %c\n", agrandar(caracter));

	return 0;
}
Anuncios

Primero definiremos una variable de tipo char con un caracter, luego mediante varios printf haremos la siguientes tareas:

  • El primero mostrara el caracter de la variable
  • El segundo mostrara el valor de la tabla ASCII
  • El tercero mostrara la aplicacion de la funcion achicar
  • El cuarto mostrara la aplicacion de la funcion agrandar
Anuncios

Con todo esto comentado vamos a mostrar como quedo nuestro codigo final:

ejemplo21.c

#include <stdio.h>

int chr(int c);
int achicar(int c);
int agrandar(int c);

int main()
{
	char caracter = 'A';

	printf("Caracter: %c\n", caracter);
	printf("chr: %i\n", chr(caracter));
	printf("achicar: %c\n", achicar(caracter));
	printf("agrandar: %c\n", agrandar(caracter));

	return 0;
}

int chr(int c)
{
	return c;
}

int achicar(int c)
{
	if (c >= 65 && c <= 90)
		return c+=32;
	return c;
}

int agrandar(int c)
{
	if (c >= 97 && c <= 122)
		return c-=32;
	return c;
}
Anuncios

Con todo esto comentado podemos pasar a compilarlo y ver como es su salida:

tinchicus@dbn001vrt:~/lenguajes/C$ ./prog/ejemplo21 
Caracter: A
chr: 65
achicar: a
agrandar: A
tinchicus@dbn001vrt:~/lenguajes/C$
Anuncios

Como pueden ver funciono perfectamente, como ultima prueba vamos a cambiar el caracter de nuestra variable con el mismo nombre, les dejo un ejemplo de como cambia la salida:

tinchicus@dbn001vrt:~/lenguajes/C$ ./prog/ejemplo21 
Caracter: z
chr: 122
achicar: z
agrandar: Z
tinchicus@dbn001vrt:~/lenguajes/C$
Anuncios

En resumen, hoy hemos visto como manipular los caracteres, si bien ya hemos visto algo con las operaciones sobre los caracteres, hoy nos hemos centrado en algo mas practico que nos puede servir para transformar el tipo de caracter si es mayuscula o minuscula, asi como tambien saber en cual lugar de la tabla esta, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios
pp258

Donación

Es para mantenimento del sitio, gracias!

$1.50