Practica 4
Practica 4
Practica 4
PARTE I :CADENAS
El tipo string o cadena no es un tipo primitivo en c; pero esto no imposibilita su
tratamiento pues las cadenas son concebidas y tratadas como array de caracteres
la declaración básica se realiza con la palabra reservada CHAR seguida de un
identificador valido y su dimensión.
Ejemplos de declaración:
Char palabra [12]; // palabra guarda hasta 12 caracteres
Char lineal [80];
Char texto [256];
Otros ejemplos:
Char nombre [20] = “Deysi”;
Char curso [] “algoritmos”;
c/c++ adiciona por defecto el carácter o marca de fin de cadena “/0” después del
ultimo carácter de la cadena de allí que la cadena curso tendrá un mapa en memoria
como
curso[ ] = A L G O R I T M O S
En cambio con las siguientes declaraciones el compilador no asigna la marca del
fin de cadena al objeto nombre.
Char curso [ ] = { A , L , G , O , R , I , T ,O , S ]
Para el lenguaje c los caracteres se trabajan con funciones como .
Getchar ( ) = leer un carácter desde entrada estándar .
Putchar ( ) = enviar un carácter a la salida estándar .
Adicionalmente en la librería ctype y stdio existen mas funciones para el manejo de
caracteres de forma análoga el manejo de cadenas en c se hace con:
Gets ( ) = leer una cadena de característica desde la entrada estándar.
Puts ( ) = enviar o escribir una cadena de características havia la salida estándar.
Para c++ las operaciones similares se realizan con funciones miembro definidas en
las clases istream y ostream
Cin.get ( ) = leer un carácter
Cin.getline ( ) = leer una cadena de caracteres.
Funciones de manejo de cadenas
c/c++ proporciona a la Liberia string.h conjunto de funciones predeterminadas que
facilitan la manipulaciones de cadena de caracteres.
Funcion Descripcion
Strcpy ( destino , origen) Copia una cadena en otra
Strncpy ( destino , origen , cantidad) Copia una cadena en otra hasta la
cantidad que indique
Strcat ( destino , origen) Concatena la cadena origen en la
cadena destino
Strupr ( cadena) Concatena hasta la cantidad requerida
Strlwr ( cadena) Convierte una cadena de minúsculas a
mayúsculas
Strcmp ( cadena) Convierte cadena a minúsculas
Strchr ( cadena) Compara cadenas
Strlen ( cadena) Busca la ocurrencia de un carácter en
la cadena
Ejemplo 1:
Ejemplo 2:
Ejemplo 3:
Ejemplo 4:
Ejemplo 5:
Ejemplo 6:
Ejemplo 7:
Ejemplo 8:
Ejemplo 9:
Ejemplo 10:
Ejemplo 11
Ejemplo 12:
Ejemplo 13:
Ejemplo 14:
Ejemplo 15:
Ejemplo 16:
Ejemplo 17:
PARTE II PUNTEROS
1340x 00100x
X es un puntero de a y
Y es una variable de tipo entero
Para declarar una variable puntero se coloca el operado * delante de la variable y
va precedida por el tipo de dato al que se requiere apuntar el formato es.
Ejemplos:
Int *x / / x es un puntero a entero
Char *c / / c es un puntero a char
Float *f *g / / f y g son punteros a float
Antes de utilizar correctamente una variable puntera de be ser asignada mediante
el operador & seguido de la variable.
Operadores para punteros
1) El operador de referencia o de dirección, es el operador & que otorga la
dirección de memoria de una variable.
2) El operador de des referencia o de dirección es el operador * y permite
declarar una variable como puntero y también permite actuar en la
dirección i indicada por &
Las variables puntero debe necesariamente ser el mismo tipo que
la variable a la cual apunta
Ejemplo 18:
Ejemplo 19:
Ejemplo 20:
VECTORES DE CADENAS
Es posible crear un vector de cadenas por ejemplos la declaración
Char vectorcads [4] [80 ];
Crea un vector d 4 cadenas cada una de longitud hasta 80 caracteres asumiendo
que estas cuatro cadenas son : hola como están
Vectorcads Hola como están Todos
EJEMPLOS 21:
Escribir un programa tal que llame a la funcion cuyo prototipo es el siguiente.
Inter generavectorcadena { chat Nc[N][M] , char car);
Donde c es la cadena original, Nc es el vector de cadenas a generar y car es un
carácter alfabético cualquiera . la funcion genera un vector de cadenas cuyos
contenido son las palabras que empiezan con el carácter car y finalmente devuelve
la cantidad de elementos que se guardaron en el vector de cadenas así por ejemplo
si car es el carácter “e” y la cadena C es:
“electrón, tipo de partículas elemental de carga negativa que forma parte de la
familia de los leptones y que, junto con los protones y los neutrones, forma los átomos y
las moléculas. Los electrones están presentes en todos los átomos y cuando son
arrancados de átomo se llaman electrones libres”.
El vector nc generado por la funcion será:
Ejemplo 22:
Ejemplo 23:
PARTE III: ASIGNACIÓN DENAMICA DE MEMORIA
En c++ permite que una varibale se comporte de forma dinámica para ello se utiliza
el operador new cual indica al compilador que se trata de una variable puntero
dinámica, la memeria dinámica ser asignada.
Int i, *pi // pi es variable puntero
Pi= new int / / pi es ahora puntero dinamico
El formato para declara y asignar memoria dinámica a un puntero
<identificador variable puntero> < operador asignación > new <tipo dato >;
Ejemplo 24:
Ejemplo 25:
Ejemplo 26:
Ejemplo 27: