jueves, 31 de mayo de 2012

Unidad III tarea 2


Las cadenas de caracteres se definen como un arreglo de datos de tipo caracter el cual termina con el carcter nulo.
Un arreglo es un grupo de datos homogeneos y finitos que ocupan posiciones consecutivas de memoria.
La declaración de una cadena de caracteres se hace de la siguiente forma:
char Nombre_de_la_variable [longitud de la cadena];
Esto hace que se guarde un espacio en memoria suficiente para soportar el numero de caracteres que se estan apartando para la cadena de caracteres que se va a leer.
Por ejemplo:
char cadena[10];
crea un espacio en memoria para 10 bytes cada uno de los cuales sera ocupado por uno de los caracteres que se van a leer.
Lectura de una cadena de caracteres:
Para hacer la lectura de una cadena de caracteres se pueden utilizar la función scanf o gets de la siguiente forma:
scanf("%s",cadena); o gets(cadena);
La ventaja de utilizar el gets en lugar del scanf es la lectura de los espacios en blanco, cosa que no hace el scanf.
Otra forma de leer una cadena de caracteres es hacerlo caracter por caracter como un arreglo unidimensional o vector, manejandola posicion por posicion cadena[posicion], mas adelante se vera un ejemplo de lo antes mencionado.
Ejemplos:
/* MANIPULACION DE UNA CADENA DE CARACTERES  POSICION POR POSICION, MANEJANDOLA COMO UN ARREGLO DE CARCTERES */
#include<conio.h>
#include<stdio.h>
void main(void)
{
 char cadena[25];
 int pos;
 clrscr();
 //Lectura de la cadena de caracteres.
  gotoxy(20,1);
  printf("Teclea una cadena de maximo 25 caracteres");
   gotoxy(27,2);
   printf("[ ]");
   gotoxy(28,2);

    gets(cadena);

    //Impresi¢n
de la cadena caracter por caracter

    clrscr();

    for
(pos=0;cadena[pos];pos++)

     {gotoxy(pos+1,pos+1);

      textcolor(pos+1);

      cprintf("%c",cadena[pos]);

      }

      getch();

      }

Las funciones gets y getchar estas especializadas en la captura de un solo carácter. La diferencia es que getchar lee un carácter y lo imprime en pantalla y el getch lo lee pero no lo muestra en pantalla. Por lo que estas se utilizan para leer un solo carácter y retener pantallas.
Otras funciones  son:
strlen
La función  strlen recibe como argumento una  cadena y da como valor de regreso un entero que corresponde al número de caracteres de la cadena (sin contar al carácter nulo). Por ejemplo, en el caso siguiente:
char nombre[10]=”Karla”;
int x;
x = strlen(nombre);
La variable x tendría un valor de 5 luego que se ejecutan las sentencias.

strcpy(cadena2,cadena1):
La función strcpy es una función sin valor de regreso que recibe dos argumentos. Un argumento es la variable cuyo valor se desea asignar y la otra es la cadena  de caracteres que se desea asignar. Por ejemplo. Las siguientes dos  asignaciones son correctas:
char nombre[20];
strcpy(nombre, “Carlos”);
también puede escribirse:
char nombre1[20], nombre2[20]=”Carlos”;
strcpy(nombre1,nombre2);


strcmp(cadena1,cadena2)
Esta función recibe dos argumentos, que son las dos cadenas a  comparar, y regresa un valor de tipo entero. Por ejemplo, para las mismas declaraciones de nombre1 y nombre2.
nom = strcmp(nombre1, nombre2);
Es una sentencia correcta si nom es de tipo entero. El valor que regresa la función strcmp es 0 si las dos cadenas son iguales. Regresa 1 si la primera cadena es mayor a la segunda y regresa –1 si la segunda cadena es mayor a la primera. Aquí, ser mayor no significa tener más caracteres, sino la comparación se hace considerando el número de código ascii  de los caracteres. La comparación se hace uno a uno hasta que se encuentre un carácter diferente entre las dos cadenas.
strcat (cadenadestino, cadena origen)


La función strcat recibe como argumentos dos cadenas y da como resultado la unión de ambas cadenas en el orden indicado. La segunda cadena se anexa a la primera cadena. Por ejemplo, las siguientes sentencias:
char nombre[20]=”Pedro ”, apellido[10]=”Burgos”;
strcat(nombre, apellido);
Cambia el valor de la cadena nombre de “Pedro” a “Pedro Burgos”.



La librería adecuada para manipular cadenas es string.h que debe incluirse en la programación principal junto con las demás librerías de la siguiente manera.
#include<string.h>
Información extraída de:



No hay comentarios:

Publicar un comentario