domingo, 20 de mayo de 2012

Unidad 3: Tarea 2

1)      Qué diferencia existe entre cadena de texto y arreglo de caracteres?

 
En el lenguaje C una cadena de texto se debe simular mediante un arreglo de caracteres, en donde la terminación de la cadena se debe indicar con nulo. Un nulo se especifica como ‘\0’. Por otra parte cuando se quiere declarar un arreglo de caracteres se debe considerar un carácter adicional a la cadena más larga que se guarde. Por ejemplo, si se quiere declarar un arreglo cadena que guarde una cadena con 10 caracteres, se hará de la siguiente manera:




Char cadena[11];


Los arreglos siendo una lista ordenada de datos de un mismo tipo, necesitan ser declarados especificando su tamaño, por ejemplo un arreglo que contenga 10 números enteros seria :


int x [10];


Por otra parte la cadena de texto viene siendo un arreglo de caracteres como lo mencionado al comienzo de esta tarea. Es importante mencionar que en las cadenas de texto por comodidad, la constante tipo cadena es la unida constante que soporta C. El tamaño del arreglo debe considerar un espacio más al final del arreglo para colocar un carácter. Finalmente, cabe destacar que para las cadenas de texto no existen operadores, existen las librerías como “<string.h>” para copiar, comparar y procesar cadenas en general.


2)      Declaración de una cadena de texto


Para declarar una cadena se hace como en el caso de un arreglo. Por ejemplo, si se quiere declarar una cadena con una longitud de 20 caracteres se declararía de la siguiente manera:


Char texto[20];


Al igual que en el caso de un arreglo, no se puede introducir mas de 20 elementos en la cadena. Por ejemplo:


#include <stdio.h>


Main()
{
Char nombre[20];
Printf (“introdusca su nombre(20 letras máximo) : “) ;
Scanf (“%s”, nombre );
Printf ( “\nEl nombre que ha escrito es: %s\n”, nombre);
}


3)      Como se realiza la lectura de cadenas de texto?


Existen diferentes funciones las cuales funcionan con la cadena de caracteres, cabe destacar que cada una de estas funciones que se presentara funcionan con la biblioteca o librería string.h por lo que es necesario incluirla en la sección de librerías.


·         Funcion cin.getline();
Esta función requiere de 3 datos o parámetros: nombre, longitud y carácter de fin.


Nombre: nombre de la variable que va a contener la cadena
Longitud: la cantidad de caracteres que se podrán introducir en la cadena.
Carácter de fin: carácter que el usuario usara al final de la cadena.


Por ejemplo:


Si se tiene un arreglo char de 300 elementos llamado str (nuestra cadena) y queremos pedirle al usuario que la llene, la función cin.getline quedaría de la siguiente manera:


Cin.getline(str,300, ‘\n’);


·         Funcion cin.get();
Esta función sirve para leer un carácter del flujo de entrada.


Por ejemplo:
La función cin.get(letra) lee un carácter y lo guarda en letra. Devuelve 0 si el carácter leído es final de archivo. En otro caso devuelve 1.


·         Funcion cin.ignore()
Esta función sirve para leer uno o más caracteres sin procesar del flujo de entrada.


·         Funcion gets()
Esta función sirve para ller una línea desde el archivo de entrada. Lee hasta que encuentra un salto de línea. Esta función es llamada con el nombre de la variable donde queremos guardar la cadena leida.


Por ejemplo:


Char nombre[20];

Gets(nombre);
….

 ·         Función getch()
Esta función sirve para leer un carácter del flujo de entrada sin que aparezca en pantalla. Se le llama sin argumentos y devuelve un entero.


Ejemplo:
Char letra;

Letra=getch();
If(letra==’S’)
Cout<<”Ha elegido seguir”;



·         Funcion getchar()
Sirve para leer el siguiente carácter del flujo de entrada. Se le llama sin argumentos y devuelve un entero.

Ahora se presentaran las funciones utilizadas para la manipulación de cadenas con el uso de la librería <string.h>

 ·         Funcion Strlen
Esta función regresa la longitud de una cadena de caracteres.


Por ejemplo:
Este programa lee una cadena de caracteres e imprime por emdio de la función strlen el numero de caracteres tecleado.

#include<string.h>
#include<stdio.h>
#include<conio.h>
void main(void)
{char cadena[80];
clrscr();
printf("Teclea una cadena de maximo 80 caracteres ");
gets(cadena);
printf("La longitud de la cadena que tecleaste es de %d",strlen(cadena));
getch();
}
·         Funcion Strcpy
Esta función copia a una cadena otra cadena de caracteres.

Ejemplo:
Este programa, lee una temperatura en grados F y manda un mensaje de acuerdo a la temperatura, el mensaje se copia en una variable y esta solo se imprime al final.


#include<conio.h>
#include<stdio.h>
#include<string.h>
void main(void)
{
Char mensaje[40];
Float temp;
clrscr();
printf("Cual fue la temperatura promedio en øF el dia de hoy");
scanf("%f",&temp);
if (temp<= 60)
strcpy(mensaje,"CASI NOS CONGELAMOS");
else
if(temp<=80)
strcpy(mensaje,"GENIAL PARA DIA DE CAMPO ");
else
if (temp<=100)
strcpy(mensaje,"PARA PASARSELA EN LA ALBERCA");
else
strcpy(mensaje,"COMO PARA ESTAR EN EL CONGELADOR ");
puts(mensaje);
getch();
}


·         Funcion Stricmp(cadena1,cadena2)
Compara 2 cadenas de caracteres alfabéticamente y regresa un valor entero de acuerdo a la comparación.


·         Funcion Strcat(cadena destino,cadena origen)
Esta función agrega al final de una cadena de caracteres otra cadena de caracteres.

 
Por ejemplo:
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidmain()
{
Char cadena[80];
clrscr();
printf(“Teclea una cadena”);
gets(cadena);
strcat(cadena,”Agrega al final”);
puts(cadena);
getch();
}





Esta informacion fue consultada en las siguientes paginas:

http://codigoc.org/464-como-usar-cin-getline-en-c
http://www.iqcelaya.itc.mx/~vicente/Programacion/Cadenas.pdf
http://yaqui.mxl.uabc.mx/~eherrera/pcadenas.html
http://gpd.sip.ucm.es/yolanda/ProgI0910/P1-006.pdf

No hay comentarios:

Publicar un comentario