2. ARREGLOS (ARRAYS) 1. Arreglos Unidimensionales y Multidimensionales Los arreglos son una colección de variables del mismo tipo que se referencian utilizando un nombre común. Un arreglo consta de posiciones de memoria contigua. La dirección más baja corresponde al primer elemento y la más alta al último. Un arreglo puede tener una o varias dimensiones. Para acceder a un elemento en particular de un arreglo se usa un índice. 1.1 Arreglos unidimensionales (Vectores y Cadenas) Los arreglos unidimensionales son listas de información del mismo tipo que se guardan en posiciones contiguas de memoria según el orden del índice. La forma general de declaración es: tipo nombre_variable[tamaño]; Para declarar un arreglo de 5 elementos denominado x y de tipo float, se escribe: floatx[5]; En este caso hemos declarado un arreglo que tiene cinco elementos, desde x[0] hasta x[4]. PROGRAMACIÓN …………………………………………………………………………… Ing. Ángel Pérez
3. ARREGLOS y CADENAS En C todos los arreglos tienen el 0 como índice de su primer elemento. C no comprueba los límites de los arreglos. Se puede pasar cualquier extremo de un arreglo y escribir en alguna otra variable de datos e incluso en el código del programa. El uso más común de los arreglos unidimensionales es como cadenas de caracteres. En C una cadena se define como un arreglo de caracteres que termina en un carácter nulo (). Para declarar un arreglo de caracteres es necesario un carácter más que la cadena más larga que pueda contener, para dejar sitio para el carácter nulo del final de la cadena. Por ejemplo, si se quiere declarar un arreglo que guarde una cadena de diez caracteres, se hará como: charcadena[11]; No es necesario añadir explícitamente el carácter nulo al final de las constantes de cadena, el compilador lo hace automáticamente. PROGRAMACIÓN …………………………………………………………………………… Ing. Ángel Pérez
4. ARREGLOS (ARRAYS) 1.2 Arreglos multidimensionales (Matrices) C permite arreglos de más de una dimensión. La forma general de declaración de un arreglo multidimensional es: tipo nombre[a] [b] [c] .. [z]; Los arreglos de tres o más dimensiones no se utilizan a menudo por la cantidad de memoria que se requiere para almacenarlos, ya que el almacenamiento requerido aumenta exponencialmente con el número de dimensiones. C permite la inicialización de arreglos en el momento de declararlos, como en cualquier variable. La forma general es: tipo nombre [tamaño1][tamaño n]={lista de valores}; La lista de valores es una lista de constantes separadas por comas cuyo tipo es compatible con el tipo especificado en la declaración del arreglo. Por ejemplo: int i[10] = {1,2,3,4,5,6,7,8,9,10}; PROGRAMACIÓN …………………………………………………………………………… Ing. Ángel Pérez
5. ARREGLOS (ARRAYS) Con las cadenas o arreglos de caracteres se hace igual, aunque permite una inicialización abreviada. Estas dos sentencias producen el mismo resultado: charcad[11] = "Me gusta C"; charcad[11] = {‘M’,’e’,’ ‘,’g’,’u’,’s’,’t’,’a’,’ ‘,’C’,’’}; Los arreglos multidimensionales se inicializan del mismo modo que los unidimensionales. Ejemplo de una matriz: PROGRAMACIÓN …………………………………………………………………………… Ing. Ángel Pérez
6. INSTRUCCIONES strcpy: Copia un string origen a destino. strncpy: Copia hasta n caracteres de origen a destino.stpcpy: Copia un string a otro. strdup:Copia un string dentro una locacion nuevamente creada. strstr: Busca la primera ocurrencia de un subcadena en otro string. strrchr: Busca la ultima ocurrencia de un caracter en un string. strchr: Busca un string por la primera ocurrencia de un caracterdado. strspn: Busca un string por un segmento que no contiene. strcspn: Busca un string por un segmento que no contiene. strpbrk:Busca un string1 la primera ocurrencia de cualquier caracter que esta string2. strtok: Busca s1 por el primera señal no contenida en s2. strcmp:Compara dos strings. stricmp: Compara dos strings sin caso sensitivo. strcmpi: Compara dos strings sin caso sensitivo. strcoll: Compara dos strings. strncmp:Compara porciones de dos strings. strnicmp:Compara porciones de dos strings. PROGRAMACIÓN …………………………………………………………………………… Ing. Ángel Pérez
7. INSTRUCCIONES strcat:Añade un string a otro. strlen:Calcula la longitud de un string. strncat: Añade un string a otro. strrev: Revierte todo caracteres en string (excepto el nulo). strset: Pone todos caracteres en s a ch. strnset: Pone los primeros n caracteres de origen a destino. Funciones de Comparación: isupper: es una letra mayúscula (A-Z). isspace: es un espacio. islower: es una letra minúscula (a-z). isalpha: es una letra (A-Z a-z). PROGRAMACIÓN …………………………………………………………………………… Ing. Ángel Pérez
8. EJERCICIOS PROPUESTOS Calcula la suma de los elementos de un vector. #include<stdio.h> #define TAM 12 main() { int a[TAM]={1,3,5,4,7,2,99,16,45,67,89,45}, i, total=0; for (i=0; i< TAM; i++){ /*Suma el contenido del arreglo*/ total+=a[i];} printf("El total de los elementos del arreglo es %d", total ); getch(); } PROGRAMACIÓN …………………………………………………………………………… Ing. Ángel Pérez
9. EJERCICIOS PROPUESTOS Escriba un programa que reciba una cadena de caracteres y devuelva su longitud. Escriba un programa que reciba una cadena de caracteres y retorne el número de caracteres que se encuentran en mayúscula. Escriba un programa que reciba una cadena de caracteres y retorne la cadena sin espacios en blanco. Escriba un programa que reciba una cadena de caracteres y retorne la cadena en mayúscula. Escriba un programa que reciba una cadena de caracteres y retorne la cadena en minúscula. Escriba un programa que reciba una cadena de caracteres y retorne la cadena invertida. Escriba un programa que reciba una cadena de caracteres y determine si la cadena es palíndrome. PROGRAMACIÓN …………………………………………………………………………… Ing. Ángel Pérez