Documente Academic
Documente Profesional
Documente Cultură
• Arreglos de caracteres
tipo nombre-arreglo[dimension];
“En C todos los arreglos
usan cero como índice
int x[3]; para el primer elemento”
“el elemento i-esimo
x[0] = 3; esta en la posición i-1”
x[1] = 2;
x[2] = 4;
printf(“El segundo elemento del vector x es %d “,x[1]);
VECTORES
Arreglos unidimensionales en C
Ejemplo, declarar un arreglo de enteros llamado listanum con diez
elementos
#define N 10
…
int listanum[N]; /* arreglo de enteros con diez elementos
desde listanum[0] hasta listanum[9]. */
int i, k=1;
#include <stdio.h>
main()
{
EJEMPLO int x;
int vec[10]={9,3,4,8,1,6,2,0,7,5};
for( x=0; x<10; x++)
{
if ( vec[x] == 5)
printf(“encontre un cinco\n”);
else printf(“ vec[ %d ] vale: %d \n”, x, vec[x] );
}
}
VECTORES
Arreglos unidimensionales en C
Problema: Escriba un programa que lea un vector de longitud máxima MAX, y
determine si el vector es simétrico.
Un vector de n datos es simétrico si el contenido de la posición i_ésima coincide
con el que ocupa la posición n-i_ésima, ej: v=(2,4,7,8,7,4,2) es simétrico.
#include <stdio.h>
#define MAX 7
main()
{
/* declaración de variables */
int i;
int vec[MAX];
/* imprime el resultado */
if (sime) printf(“ El vector es simétrico \n”);
else printf(“ El vector no es simétrico \n”);
}
MATRICES
Arreglos bi-dimensionales en C
Ejemplo:
_ _ Índice filas
|123|
Matriz M(3,3) = | 4 5 6 | M 1 M(0,0)
|789|
2 M(0,1)
- -
En C:
3 M(0,2)
int M[3][3]; 4
5 M(1,1)
M[0][0] = 1;
M[0][1] = 2; 6
M[0][2] = 3; 7
M[1][0] = 4;
8 M(2,1)
M[1][1] = 5;
M[1][2] = 6; 9
M[2][0] = 7; Índice columnnas
M[2][1] = 8;
M[2][2] = 9;
printf(“El elemento 2x2 de M es %d “,M[1][1]);
MATRICES
Arreglos bi-dimensionales en C
Usamos la estructura ‘for’ para acceder los elementos de la matriz
#define DIM1 3
#define DIM2 3
…
int i, j, k;
int M[DIM1][DIM2] = { 1,2,3,4,5,6,7,8,9}; /*inicializa la matriz M */
k=1;
for( i=0; i<DIM1; i++) /* se inicializa la matriz M con for’s anidados*/
for( j=0; j<DIM2; j++)
{
M[ i ][ j ] = k;
k ++;
}
#include <stdio.h>
#define FILAS 3
#define COLUM 3
void main()
{
/* Declaracion de variables */
int M[FILAS][COLUM] /* ENTRADA se guarda en arreglo de 2 dimensiones */
int i, j, suma;
/* calculo de la suma */
suma = 0;
for( i=0; i<FILAS; i++) /* se imprime la matriz M */
for( j=0; j<COLUM; j++)
if( ! (i==j))
suma += M[i][j];
/* imprime suma */
printf(“La suma es: %5d”, suma );
}
MATRICES
Arreglos multi-dimensionales en C
tipo nombre-arreglo[dim-1][dim-2]…[dim-n];
int nombre-arreglo[dim-1][dim-2]…[dim-n];
cadena[4] = ‘a’; \0
cadena[5] = ‘\0’;
CADENAS, como arreglos de caracteres
Al inicializar arreglos de caracteres al momento de declararlos
C automáticamente asigna el carácter nulo al final de la cadena
Es equivalente a:
nombre_arr[ 0 ] = ‘c’;
nombre_arr[ 1 ] = ‘a’;
nombre_arr[ 2 ] = ‘d’;
nombre_arr[ 3 ] = ‘e’;
nombre_arr[ 4 ] = ‘n’;
nombre_arr[ 5 ] = ‘a’;
nombre_arr[ 6 ] = ‘\0’;
#include <string.h>
- strcpy(s1,s2) s1 = s2;
- strlen(s) longitud de s
CADENAS, como arreglos de caracteres
strcpy(string_destino, string_original);
Ejemplo:
char nombre[30] = “nombre”;
char copia[30];
strcpy(copia,nombre);
strcpy(nombre,"pato");
strcat(string1, string2);
Ejemplo:
char nombre[30], copia[30];
strcpy(nombre,"pepe");
strcat(nombre,"lopez");
CADENAS, como arreglos de caracteres
strcmp(string1, string2);
Se utiliza para comparar 2 strings, esta función regresa cero si ambas strings
son iguales, regresa un número mayor que cero si string 1 es mayor que string
2 y regresa un número menor que cero si string 1 es menor alfabeticamente
que string 2.
Ejemplo:
char opcion[3];
if ( strcmp(opcion,"si") == 0 ) printf(“la opcion es si”);
strlen(string);
Ejemplo:
char nombre[30];
strcpy(nombre,"juan");
printf(“La cantidad de caracteres de nombre es %d”, strlen(nombre)); /* 4
*/
CADENAS, scanf printf, con convertidor %s
Para asignar a un arreglo de caracteres una cadena de la
‘entrada estándar’ se puede usar la función scanf con la
opción %s
Nota: que no se requiere usar el operador &
De igual forma para mostrarlo en la ‘salida estándar’. ..
Ejemplo:
main()
{
char nombre[15], apellidos[30];
printf("Introduce tu nombre: ");
scanf("%s",nombre);
printf("Introduce tus apellidos: ");
scanf("%s",apellidos);
printf("Usted es %s %s\n",nombre,apellidos);
}
#include <stdio.h>
EJEMPLO #include <stdlib.h>
#include <string.h>
#define CERO 0
Usando la
Librería void main()
string.h {
char a[6]="Hola ";
char b[6]="Mundo";
char c[20];
char d[11]="Hola ";
system("PAUSE");
}