Está en la página 1de 24

UNIDAD 1.

Introducción al lenguaje C:

El lenguaje C fue desarrollado por Dennis Ritchie a principios de la década de 1970 en los Laboratorios
Bell. Es un lenguaje de programación de propósito general y estructurado, ampliamente utilizado en el
desarrollo de software.
C es conocido por su eficiencia, flexibilidad y portabilidad. Ha influido en la creación de otros
lenguajes de programación, como C++, C#, Java y Python.
Algunas de las características destacadas de C son su bajo nivel de abstracción, acceso directo a la
memoria, eficiente manipulación de bits, capacidad para programar a bajo nivel y su amplia gama de
aplicaciones en áreas como sistemas operativos, compiladores, aplicaciones embebidas y juegos.

Estructura general de un programa en C:

Un programa en C se compone de funciones, y la función principal es main(), que sirve como punto de
inicio de la ejecución del programa.
Antes de la función main(), se pueden incluir directivas de preprocesador con la sintaxis #include, que
permiten la incorporación de bibliotecas estándar o personalizadas en el programa.
Dentro de la función main(), se declaran variables utilizando tipos de datos básicos como int (entero),
float (coma flotante), char (carácter) y void (vacío).
Las instrucciones y expresiones en C se terminan con un punto y coma (;). Las estructuras de control
como if, else, switch, while, do-while y for se utilizan para controlar el flujo de ejecución.
Además de la función main(), se pueden definir otras funciones para organizar y modularizar el código.

#include <stdio.h>

int main() {
// Declaración y asignación de variables
int num1 = 10;
int num2 = 5;

// Operaciones y expresiones
int suma = num1 + num2;
int resta = num1 - num2;
int multiplicacion = num1 * num2;

// Impresión de resultados
printf("Suma: %d\n", suma);
printf("Resta: %d\n", resta);
printf("Multiplicación: %d\n", multiplicacion);

return 0;
}
Identificador y localidad de memoria:

Un identificador en C es un nombre utilizado para identificar variables, constantes, funciones y otros


elementos del programa. Los identificadores deben seguir reglas específicas de nomenclatura y no
pueden ser palabras reservadas.
Los identificadores pueden tener alcance global o local. Un identificador global es visible y accesible
desde cualquier parte del programa, mientras que un identificador local solo es visible dentro de un
bloque de código específico, como una función.
La localidad de memoria se refiere a la ubicación física en la memoria donde se almacenan los datos.
Las variables en C se declaran con un tipo de dato y un identificador, y se asigna un espacio en la
memoria para almacenar su valor.
El operador de asignación (=) se utiliza para asignar un valor a una variable, y el operador de acceso a
memoria (&) se utiliza para obtener la dirección de memoria de una variable. El operador de
indirección (*) se utiliza para acceder al valor almacenado en una dirección de memoria.

Palabras reservadas en C:

C cuenta con un conjunto de palabras reservadas que tienen significados especiales en el lenguaje y no
pueden ser utilizadas como identificadores. Algunas palabras reservadas comunes son int, float, char, if,
while, for, return, switch, entre otras

Aquí tienes una lista completa de las palabras reservadas en el estándar ANSI del lenguaje C:

auto double int struct


break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while

Ten en cuenta que esta lista corresponde al estándar ANSI del lenguaje C y puede variar ligeramente en
implementaciones específicas o versiones más recientes del lenguaje.
UNIDAD 2.

Variables:

Las variables en C son espacios de memoria que se utilizan para almacenar valores. Pueden tener
diferentes tipos de datos y deben ser declaradas antes de su uso. A continuación se muestra un ejemplo
de declaración de variables en C:

int edad;
float salario;
char inicial;

Constantes:

Las constantes son valores fijos que no pueden modificarse durante la ejecución del programa. Se
declaran utilizando la palabra clave const. A continuación se muestra un ejemplo de declaración de
constantes en C:

const int numero = 10;


const float pi = 3.14159;
const char letra = 'A';

Tipos de datos fundamentales:

En C, existen varios tipos de datos fundamentales, entre ellos:

int: representa números enteros.


float: representa números de punto flotante (con decimales).
char: representa caracteres individuales.
double: representa números de punto flotante con mayor precisión.
void: indica ausencia de tipo o valor.

Operadores aritméticos y lógicos:

En C, existen varios operadores aritméticos y lógicos que se utilizan para realizar cálculos y evaluar
condiciones. Algunos ejemplos son:

Operadores aritméticos: + (suma), - (resta), * (multiplicación), / (división), % (módulo).


Operadores lógicos: && (AND lógico), || (OR lógico), ! (NOT lógico).

Precedencia de operadores:

Los operadores en C tienen una precedencia definida, lo que determina el orden en el que se evalúan
las expresiones. A continuación se muestra un ejemplo de precedencia de operadores:

int resultado = 2 + 3 * 4; // El resultado es 14, ya que la multiplicación se evalúa primero.


Expresiones:

Las expresiones en C combinan variables, constantes y operadores para realizar cálculos y generar
resultados. Por ejemplo:

int x = 5;
int y = 3;
int resultado = x + y * 2; // El resultado es 11, ya que la multiplicación se evalúa primero.

Sentencias:

Las sentencias en C son instrucciones que realizan una acción específica. Algunos ejemplos de
sentencias son:

Sentencia de asignación: x = 10;

Sentencia de control de flujo: if (x > 0) { /* código a ejecutar si x es mayor que 0 */ }

Sentencia de bucle: for (int i = 0; i < 10; i++) { /* código a ejecutar en cada iteración */ }

Bloques de sentencias:

Los bloques de sentencias en C agrupan un conjunto de sentencias dentro de llaves {}. Esto permite
que varias sentencias se ejecuten en secuencia. Por ejemplo:

int x = 5;
{
int y = 3;
int resultado = x + y; // El resultado es 8.
}

Funciones básicas de entrada:

En C, las funciones de entrada se utilizan para obtener datos del usuario. La función scanf() se utiliza
para leer valores desde el teclado. A continuación se muestra un ejemplo:

int edad;
printf("Ingrese su edad: ");
scanf("%d", &edad);

La función scanf() se utiliza para leer valores de entrada desde el teclado. Permite leer diferentes tipos
de datos según el formato especificado. A continuación se muestra la sintaxis general de la función
scanf():

scanf("formato", &variable);
"formato": Es una cadena de caracteres que especifica el formato de entrada esperado. Puede incluir
especificadores de formato para diferentes tipos de datos, como %d para enteros, %f para números de
punto flotante, %c para caracteres, %s para cadenas, entre otros.

&variable: Es la dirección de memoria de la variable donde se almacenará el valor leído. Es importante


utilizar el operador & antes del nombre de la variable para obtener su dirección de memoria.

A continuación se muestran algunos ejemplos de uso de la función scanf():

Leer un entero:

int edad;
scanf("%d", &edad);

Leer un número de punto flotante:

float peso;
scanf("%f", &peso);

Leer un carácter:

char inicial;
scanf(" %c", &inicial); // Se utiliza un espacio antes del especificador de formato para ignorar los
espacios en blanco.

Leer una cadena:

char nombre[20];
scanf("%s", nombre); // No se utiliza el operador '&' antes del nombre del arreglo, ya que el nombre
del arreglo representa la dirección de memoria.

Es importante tener en cuenta que la función scanf() devuelve un valor entero, que indica el número de
elementos leídos con éxito. Puedes utilizar este valor para realizar verificaciones de entrada si es
necesario.

Recuerda que al utilizar la función scanf(), debes asegurarte de que los datos ingresados coincidan con
el formato especificado. De lo contrario, pueden producirse errores o comportamientos inesperados en
tu programa.
Funciones básicas de salida:

En C, las funciones de salida se utilizan para mostrar resultados al usuario. La función printf() se utiliza
para imprimir valores en la consola. A continuación se muestra un ejemplo:

int edad = 25;


printf("La edad ingresada es: %d", edad);

La función printf() se utiliza para mostrar resultados en la salida estándar, que generalmente es la
consola. Permite imprimir valores formateados en la pantalla. A continuación se muestra la sintaxis
general de la función printf():

printf("formato", argumentos);

"formato": Es una cadena de caracteres que especifica el formato de salida deseado. Puede contener
texto literal y especificadores de formato para diferentes tipos de datos, como %d para enteros, %f para
números de punto flotante, %c para caracteres, %s para cadenas, entre otros.

argumentos: Son los valores que se van a imprimir en función de los especificadores de formato
presentes en la cadena de formato. Los argumentos se proporcionan en el orden en que aparecen en la
cadena.

A continuación se muestran algunos ejemplos de uso de la función printf():

Imprimir un entero:

int edad = 25;


printf("La edad es: %d\n", edad);

Imprimir un número de punto flotante:

float promedio = 8.5;


printf("El promedio es: %.2f\n", promedio); // El especificador ".2f" indica que se mostrarán dos
decimales.

Imprimir un carácter:

char inicial = 'A';


printf("La inicial es: %c\n", inicial);

Imprimir una cadena:

char nombre[] = "Juan";


printf("El nombre es: %s\n", nombre);
Dentro del formato, también se pueden incluir opciones de formato adicionales, como ancho de campo,
alineación, relleno con espacios, entre otros. Por ejemplo:

int numero = 7;
printf("El número es: %5d\n", numero); // Se reserva un ancho de campo de 5 caracteres para imprimir
el número.

Es importante tener en cuenta que los especificadores de formato deben coincidir con el tipo de datos
de los argumentos proporcionados. De lo contrario, se pueden producir errores o resultados inesperados
en la salida.

La función printf() también tiene un valor de retorno entero que indica el número de caracteres
impresos con éxito. Puedes utilizar este valor si necesitas realizar alguna verificación o cálculo
adicional.

Recuerda que al utilizar la función printf(), puedes utilizar caracteres de escape como \n para
representar un salto de línea y \t para representar una tabulación, entre otros.
UNIDAD 3.

Control secuencial:

El control secuencial es la forma más básica de ejecución de instrucciones en un programa. Las


instrucciones se ejecutan en el orden en que aparecen en el código. A continuación, se presenta un
ejemplo de control secuencial en lenguaje C:

#include <stdio.h>

int main() {
// Declaración e inicialización de variables
int a = 5;
int b = 10;
int suma;

// Realizar la operación
suma = a + b;

// Imprimir el resultado
printf("El resultado de la suma es: %d\n", suma);

return 0;
}

En este ejemplo, las instrucciones se ejecutan en secuencia. Primero se declaran e inicializan las
variables a y b, luego se realiza la operación de suma y finalmente se imprime el resultado.

Control selectivo:

El control selectivo permite tomar decisiones basadas en condiciones específicas. El flujo del programa
puede variar dependiendo de si una condición es verdadera o falsa. A continuación, se presenta un
ejemplo de control selectivo en lenguaje C utilizando la estructura de control if:

#include <stdio.h>

int main() {
// Declaración e inicialización de variables
int edad;

// Solicitar la edad al usuario


printf("Ingrese su edad: ");
scanf("%d", &edad);

// Verificar si la persona es mayor de edad


if (edad >= 18) {
printf("Eres mayor de edad.\n");
} else {
printf("Eres menor de edad.\n");
}

return 0;
}

En este ejemplo, se solicita al usuario ingresar su edad. Luego, se verifica si la edad ingresada es mayor
o igual a 18 utilizando una estructura de control if. Si la condición es verdadera, se imprime "Eres
mayor de edad". De lo contrario, se imprime "Eres menor de edad".

Control selectivo con switch:

El control selectivo con la estructura de control switch se utiliza cuando se necesitan tomar decisiones
basadas en múltiples opciones específicas. Es especialmente útil cuando se desea comparar una
variable con múltiples valores diferentes. A continuación, se presenta un ejemplo de control selectivo
con switch en lenguaje C:

#include <stdio.h>

int main() {
// Solicitar al usuario que ingrese un número del 1 al 3
printf("Ingrese un número del 1 al 3: ");
int opcion;
scanf("%d", &opcion);

// Evaluar la opción ingresada usando switch


switch (opcion) {
case 1:
printf("Ha seleccionado la opción 1.\n");
break;
case 2:
printf("Ha seleccionado la opción 2.\n");
break;
case 3:
printf("Ha seleccionado la opción 3.\n");
break;
default:
printf("Opción inválida.\n");
break;
}

return 0;
}
En este ejemplo, se solicita al usuario ingresar un número del 1 al 3. Luego, se utiliza la estructura de
control switch para evaluar la opción ingresada. Cada caso (case) dentro del switch representa una
opción específica que se compara con el valor de opcion. Si el valor coincide con alguna de las
opciones, se ejecuta el bloque de código correspondiente. En caso de que no haya coincidencia, se
ejecuta el bloque de código del default. En este ejemplo, se imprime un mensaje dependiendo de la
opción seleccionada por el usuario.

Recuerda que cada caso dentro de un switch debe finalizar con la palabra clave break para evitar que la
ejecución continúe en los casos siguientes. Sin el break, se ejecutarían todos los casos siguientes al caso
que coincida, lo cual podría no ser deseado en la mayoría de los casos.

Control repetitivo:

El control repetitivo permite ejecutar un bloque de código varias veces. Se utilizan estructuras de
control como while, do-while y for para implementar ciclos en lenguaje C. A continuación, se presenta
un ejemplo de control repetitivo utilizando un ciclo for:

#include <stdio.h>

int main() {
// Imprimir los números del 1 al 5
for (int i = 1; i <= 5; i++) {
printf("%d ", i);
}

printf("\n");

return 0;
}

En este ejemplo, se utiliza un ciclo for para imprimir los números del 1 al 5. La variable i se inicializa
en 1, y mientras i sea menor o igual a 5, se ejecuta el bloque de código dentro del ciclo. En cada
iteración, se imprime el valor de i y luego se incrementa en 1.

Espero que esta guía de estudio te ayude a comprender los conceptos de control secuencial, control
selectivo y control repetitivo en lenguaje C. Recuerda practicar y experimentar con ejemplos
adicionales para fortalecer tus habilidades de programación. ¡Buena suerte en tu aprendizaje!
UNIDAD 4.

Declaración de funciones:

La declaración de una función en C permite al compilador conocer la firma de la función antes de que
se defina o se invoque. La declaración proporciona información sobre el nombre de la función, el tipo
de valor que devuelve y los parámetros que acepta.

Ejemplo:

// Declaración de una función sin parámetros ni valor de retorno


void saludar();

// Declaración de una función con parámetros y valor de retorno


int sumar(int a, int b);

La declaración de una función se coloca típicamente en un archivo de encabezado (.h) o al comienzo


del archivo de código fuente principal. Esto permite que otras partes del programa conozcan la
existencia y la firma de la función antes de que se defina o se invoque.

Definición de funciones:

La definición de una función en C proporciona la implementación real de la función. Contiene el


cuerpo de la función, que es el conjunto de instrucciones que se ejecutarán cuando la función sea
invocada.

Sintaxis: tipo_de_retorno nombre_de_la_funcion(tipo_parametro1 parametro1, tipo_parametro2


parametro2, ...) { cuerpo_de_la_funcion }

Ejemplo:

// Definición de una función sin parámetros ni valor de retorno


void saludar() {
printf("¡Hola, mundo!\n");
}

// Definición de una función con parámetros y valor de retorno


int sumar(int a, int b) {
return a + b;
}

La definición de una función proporciona el código real que se ejecutará cuando se invoque la función.
El cuerpo de la función puede contener cualquier número de instrucciones válidas en C, como
operaciones aritméticas, llamadas a otras funciones, estructuras de control, etc.
Invocación de funciones:

La invocación de una función se realiza para ejecutar el conjunto de instrucciones que componen la
función.

Para invocar una función, se utiliza el nombre de la función seguido de paréntesis que contienen los
argumentos de la función (si la función acepta parámetros).

Ejemplo:

// Invocación de una función sin parámetros ni valor de retorno


saludar();

// Invocación de una función con parámetros y valor de retorno


int resultado = sumar(3, 5);
printf("El resultado de la suma es: %d\n", resultado);

Recuerda que en C es necesario declarar una función antes de invocarla o definirla. Esto se puede hacer
colocando la declaración de la función en la parte superior del archivo o utilizando prototipos de
función al comienzo del archivo o en un archivo de encabezado (.h).

Al invocar una función, se pueden pasar los argumentos correspondientes a los parámetros de la
función. Si la función devuelve un valor, ese valor se puede asignar a una variable o utilizar
directamente en el programa.
UNIDAD 5.

Concepto de arreglo:

Un arreglo es una colección de elementos del mismo tipo de datos que se almacenan en una secuencia
contigua en la memoria. Cada elemento en el arreglo se identifica por un índice, que comienza en 0 y
se incrementa de forma consecutiva. Los arreglos son útiles para almacenar y manipular conjuntos de
datos relacionados.

Ejemplo:

int numeros[5]; // Declaración de un arreglo de enteros con capacidad para 5 elementos.

Declaración de arreglo:
Para declarar un arreglo en C, se especifica el tipo de datos de los elementos y se indica el nombre del
arreglo, seguido de corchetes que contienen el tamaño del arreglo.

Ejemplo:

int numeros[10]; // Declaración de un arreglo de enteros con capacidad para 10 elementos.

Inicialización de arreglo:

Los arreglos pueden inicializarse al momento de su declaración mediante una lista de valores entre
corchetes. El número de valores debe ser igual o menor que el tamaño del arreglo.

Ejemplo:

int numeros[] = {1, 2, 3, 4, 5}; // Inicialización de un arreglo de enteros.

Arreglo multidimensional:

Un arreglo multidimensional es una matriz de elementos con más de una dimensión. Puede ser pensado
como una tabla con filas y columnas. La declaración y acceso a elementos en un arreglo
multidimensional se realiza utilizando índices separados por comas.

Ejemplo:

int matriz[3][3]; // Declaración de una matriz de enteros 3x3.

matriz[0][0] = 1; // Asignar un valor a la posición (0, 0) de la matriz.


int elemento = matriz[1][2]; // Acceder al valor en la posición (1, 2) de la matriz.
Arreglo de caracteres:

Un arreglo de caracteres (también conocido como una cadena de caracteres o string) es una secuencia
de caracteres terminada por el carácter nulo ('\0'). Los arreglos de caracteres se utilizan comúnmente
para representar texto en C.

Ejemplo:

char nombre[] = "Juan"; // Declaración e inicialización de un arreglo de caracteres.

printf("Nombre: %s", nombre); // Imprimir el arreglo de caracteres.

Utilización de arreglos:

Los arreglos se utilizan para almacenar y manipular conjuntos de datos de manera eficiente. Se pueden
acceder y modificar los elementos de un arreglo utilizando índices. Los bucles, como el bucle for, son
útiles para recorrer los elementos de un arreglo.

Ejemplo:

int numeros[] = {1, 2, 3, 4, 5};

// Recorrer y sumar los elementos del arreglo.


int suma = 0;
for (int i = 0; i < 5; i++) {
suma += numeros[i];
}

printf("Suma: %d", suma);

===

int matriz[3][3] = {
{1, 2, 3}, // Primera fila
{4, 5, 6}, // Segunda fila
{7, 8, 9} // Tercera fila
};

En este ejemplo, se declara y se inicializa una matriz de enteros 3x3. Cada fila del arreglo
multidimensional se representa entre llaves {} y los elementos de cada fila se separan por comas. En
este caso, se asignan los valores del 1 al 9 a la matriz.

También es posible inicializar solo algunas filas o incluso algunos elementos de cada fila, dejando los
demás en cero o sin inicializar. Aquí tienes otro ejemplo:
int matriz[3][3] = {
{1, 2}, // Primera fila, los elementos restantes se inicializan a 0
{4, 5, 6}, // Segunda fila
{7} // Tercera fila, los elementos restantes se inicializan a 0
};

En este caso, la primera fila tiene dos elementos {1, 2}, mientras que la segunda fila tiene tres
elementos {4, 5, 6} y la tercera fila solo tiene un elemento {7}. Los demás elementos se inicializan
automáticamente a cero.

Recuerda que una vez inicializado el arreglo multidimensional, puedes acceder y modificar sus
elementos utilizando índices, de manera similar a como lo harías con un arreglo unidimensional.

Acceso a un elemento de un arreglo multidimensional:

int matriz[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};

int elemento = matriz[1][2]; // Acceder al elemento en la fila 1 y columna 2 (valor: 6)


printf("Elemento: %d\n", elemento);

En este ejemplo, se declara y se inicializa una matriz de enteros 3x3. Luego, se accede al elemento en
la fila 1 y columna 2 utilizando los índices [1][2]. El valor del elemento (en este caso, 6) se guarda en
la variable elemento y se imprime en pantalla.

Modificación de un elemento de un arreglo multidimensional:

int matriz[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};

matriz[0][1] = 10; // Modificar el elemento en la fila 0 y columna 1 a 10

printf("Matriz modificada:\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", matriz[i][j]);
}
printf("\n");
}
En este ejemplo, se declara y se inicializa una matriz de enteros 3x3. Luego, se modifica el elemento en
la fila 0 y columna 1 asignándole el valor 10 mediante la expresión matriz[0][1] = 10;. Después de la
modificación, se imprime la matriz completa en pantalla utilizando un bucle for anidado para recorrer
todas las filas y columnas.

El resultado de este ejemplo mostrará la matriz modificada:

Matriz modificada:
1 10 3
456
789

Recuerda que los índices comienzan en cero y se utilizan para acceder a elementos específicos en un
arreglo multidimensional. Puedes utilizar estos ejemplos como base para practicar y explorar más con
el acceso y la modificación de arreglos multidimensionales en lenguaje C.
UNIDAD 6.

Declaración de apuntadores:

Los apuntadores son variables especiales que almacenan direcciones de memoria. Para declarar un
apuntador en C, se utiliza el operador asterisco (*) antes del nombre de la variable. Por ejemplo:

int *p; // Declaración de un apuntador a un entero


char *ptr; // Declaración de un apuntador a un caracter
float *fp; // Declaración de un apuntador a un flotante

Inicialización de apuntadores:

Los apuntadores pueden ser inicializados de diferentes maneras en C. A continuación se presentan


algunos ejemplos:

a) Inicialización a NULL: Se puede inicializar un apuntador a NULL, lo que significa que no apunta a
ninguna dirección de memoria en particular.

int *p = NULL;

b) Inicialización a la dirección de una variable: Un apuntador también puede inicializarse con la


dirección de memoria de otra variable.

int num = 10;


int *p = &num;

Utilización de apuntadores:

Los apuntadores son muy útiles para trabajar con estructuras de datos complejas y para manipular
eficientemente el almacenamiento en memoria. A continuación se presentan algunos ejemplos de cómo
utilizar apuntadores en diferentes situaciones:

a) Acceso al valor apuntado (dereferenciación): Para acceder al valor almacenado en la dirección de


memoria apuntada por un apuntador, se utiliza el operador de indirección (*) antes del apuntador.

int num = 10;


int *p = &num;
printf("El valor de num es: %d\n", *p); // Imprime: El valor de num es: 10
b) Modificación del valor apuntado: Los apuntadores también permiten modificar el valor almacenado
en la dirección de memoria a la que apuntan.

int num = 10;


int *p = &num;
*p = 20;
printf("El nuevo valor de num es: %d\n", num); // Imprime: El nuevo valor de num es: 20

c) Aritmética de apuntadores: Los apuntadores en C también pueden ser utilizados para realizar
operaciones aritméticas, como incrementar o decrementar su valor.

int arr[] = {10, 20, 30, 40, 50};


int *p = arr; // Apuntador al primer elemento del arreglo

printf("%d\n", *p); // Imprime: 10


p++; // Avanza al siguiente elemento
printf("%d\n", *p); // Imprime: 20

Recuerda practicar regularmente y realizar ejercicios para afianzar tus conocimientos sobre
apuntadores en lenguaje C.
UNIDAD 7.

Cadenas

Las cadenas en lenguaje C son secuencias de caracteres terminadas por el carácter nulo ('\0'). Son
representadas como arreglos de caracteres y son ampliamente utilizadas para almacenar y manipular
texto.

Declaración de cadenas:

Para declarar una cadena en C, se utiliza la siguiente sintaxis:

char cadena[tamaño];

Inicialización de cadenas:

Las cadenas se pueden inicializar de las siguientes formas:

char cadena1[] = "Hola"; // Inicialización implícita


char cadena2[6] = {'H', 'o', 'l', 'a', '\0'}; // Inicialización explícita

Entrada y salida de cadenas:

Para leer una cadena desde la entrada estándar, se puede usar la función scanf o gets (considerado
obsoleto en C11). Para imprimir una cadena en la salida estándar, se utiliza la función printf o puts.

char nombre[50];
printf("Ingrese su nombre: ");
scanf("%s", nombre);
printf("Hola, %s\n", nombre);

Funciones de manipulación de cadenas:

Cuenta con una serie de funciones de biblioteca para manipular cadenas, como:

strlen: devuelve la longitud de una cadena.


strcpy: copia una cadena en otra.
strcat: concatena dos cadenas.
strcmp: compara dos cadenas.
Ejemplo:

#include <string.h>

char cadena1[20] = "Hola";


char cadena2[20] = " Mundo";

printf("Longitud de cadena1: %d\n", strlen(cadena1));


strcpy(cadena1, "Hola a todos");
strcat(cadena1, cadena2);
if (strcmp(cadena1, cadena2) == 0)
printf("Las cadenas son iguales\n");

Arreglos de caracteres

Los arreglos de caracteres en C son utilizados para almacenar múltiples caracteres en una sola variable.
Pueden ser utilizados para representar cadenas de texto, pero no tienen las mismas funcionalidades que
las cadenas.

Declaración de arreglos de caracteres:


Para declarar un arreglo de caracteres en C, se utiliza la siguiente sintaxis:

char arreglo[tamaño];

Inicialización de arreglos de caracteres:

Los arreglos de caracteres se pueden inicializar de la siguiente forma:

char arreglo[] = {'H', 'o', 'l', 'a', '\0'};

Acceso a elementos de un arreglo de caracteres:

Los elementos de un arreglo de caracteres se pueden acceder mediante su índice:

char arreglo[5] = "Hola";


printf("%c\n", arreglo[0]); // Imprime 'H'

Modificación de elementos de un arreglo de caracteres:

Los elementos de un arreglo de caracteres se pueden modificar asignando un nuevo valor:

char arreglo[5] = "Hola";


arreglo[1] = 'e'; // Cambia el segundo elemento a 'e'
printf("%s\n", arreglo); // Imprime "Hola"
Utilización de cadenas

La utilización de cadenas en C implica el uso de funciones y técnicas para trabajar con cadenas de
caracteres de manera eficiente.

Iteración sobre una cadena:

Es posible iterar sobre una cadena utilizando un bucle y accediendo a los elementos de la cadena
mediante su índice.

char cadena[] = "Hola";


int i;
for (i = 0; cadena[i] != '\0'; i++) {
printf("%c\n", cadena[i]);
}

Búsqueda de caracteres en una cadena:

Es posible buscar la presencia de un carácter en una cadena utilizando un bucle y comparando cada
elemento de la cadena con el carácter buscado.

char cadena[] = "Hola";


char caracter = 'o';
int i;
int encontrado = 0;
for (i = 0; cadena[i] != '\0'; i++) {
if (cadena[i] == caracter) {
encontrado = 1;
break;
}
}
if (encontrado) {
printf("El carácter '%c' está presente en la cadena.\n", caracter);
} else {
printf("El carácter '%c' no está presente en la cadena.\n", caracter);
}
Manipulación de cadenas sin funciones de biblioteca:

Es posible realizar diversas manipulaciones de cadenas utilizando bucles y operaciones básicas de


asignación y comparación de caracteres.

char cadena[] = "Hola";


char nueva_cadena[10];
int i, j = 0;
for (i = 0; cadena[i] != '\0'; i++) {
if (cadena[i] != 'o') {
nueva_cadena[j] = cadena[i];
j++;
}
}
nueva_cadena[j] = '\0';
printf("Nueva cadena: %s\n", nueva_cadena);

Recuerda practicar y experimentar con ejercicios adicionales para afianzar tus conocimientos en el
manejo de cadenas y arreglos de caracteres en lenguaje C.
UNIDAD 8.

Concepto de estructuras:

Las estructuras en lenguaje C son tipos de datos personalizados que permiten combinar diferentes tipos
de variables bajo un solo nombre. Una estructura se compone de varios campos o miembros, cada uno
con su propio tipo de dato. Esto permite agrupar información relacionada en una única entidad.

Ejemplo:

struct Persona {
char nombre[50];
int edad;
float altura;
};

Declaración de estructuras:

Para declarar una estructura en C, se utiliza la palabra clave struct, seguida del nombre de la estructura
y los campos que la componen, separados por punto y coma. La declaración de una estructura solo
define su estructura y no reserva memoria para las variables de ese tipo.

Ejemplo:

struct Persona {
char nombre[50];
int edad;
float altura;
};

Inicialización de estructuras:

La inicialización de una estructura se puede realizar al momento de declararla o posteriormente


utilizando el operador de asignación (=). Para inicializar una estructura durante la declaración, se
utilizan llaves {} y se asignan los valores correspondientes a cada campo.

Ejemplos:

struct Persona p1 = {"Juan", 25, 1.75};

struct Persona p2;


p2.nombre = "María";
p2.edad = 30;
p2.altura = 1.60;
Utilización de estructuras:

Para acceder a los campos de una estructura, se utiliza el operador punto (.) seguido del nombre del
campo. Es posible asignar valores a los campos y obtenerlos para su uso en diferentes operaciones.

Ejemplos:

printf("Nombre: %s\n", p1.nombre);


printf("Edad: %d\n", p1.edad);
printf("Altura: %.2f\n", p1.altura);

p2.edad += 1;
printf("Nueva edad de María: %d\n", p2.edad);

Las estructuras también se pueden utilizar en arreglos, punteros, como argumentos de funciones y en la
declaración de otras estructuras.

Ejemplo:

struct Estudiante {
struct Persona datosPersonales;
int numeroEstudiante;
};

Recuerda que practicar con ejercicios y ejemplos adicionales es fundamental para afianzar tus
conocimientos en el uso de estructuras en lenguaje C. ¡Explora y diviértete aprendiendo!

También podría gustarte