Funciones de C y Manejo de Cadenas
37 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿Qué es un arreglo de cadenas?

  • Un arreglo donde cada elemento es una cadena. (correct)
  • Una estructura que almacena variables enteras.
  • Un arreglo que define constantes numéricas.
  • Un conjunto de punteros que apuntan a números.
  • ¿Cuál es una característica distintiva de un arreglo de apuntadores a cadenas?

  • Contiene solo cadenas vacías.
  • Cada elemento es un apuntador a una cadena. (correct)
  • Cada elemento es un número entero.
  • Todos los elementos deben ser de la misma longitud.
  • En el código para desplegar un menú, ¿qué función se utiliza para mostrar cada opción en la consola?

  • display
  • puts (correct)
  • printf
  • write
  • ¿Qué representa el carácter ' ' en un arreglo de cadenas?

    <p>El final de una cadena.</p> Signup and view all the answers

    Al definir un arreglo de cadenas, ¿cuál es la forma correcta de separar los elementos?

    <p>Con comas y encerrados entre comillas dobles.</p> Signup and view all the answers

    ¿Qué hace la función despliegaMenu?

    <p>Despliega un menú en la pantalla con las opciones proporcionadas.</p> Signup and view all the answers

    ¿Cuál es el propósito de la función selOpcionMenu?

    <p>Permitir seleccionar una opción del menú mediante teclado.</p> Signup and view all the answers

    Si un usuario teclea una letra que no corresponde a ninguna opción, ¿qué valor regresa selOpcionMenu?

    <p>-1</p> Signup and view all the answers

    ¿Qué tipo de dato devuelve la función buscaMayuscula si encuentra una letra mayúscula?

    <p>El carácter que representa la letra mayúscula encontrada.</p> Signup and view all the answers

    ¿Cuál es la función del módulo alturasUtils en el programa?

    <p>Leer las matrículas, nombres y alturas de los alumnos.</p> Signup and view all the answers

    ¿Qué es un apuntador a un arreglo de cadenas?

    <p>Una dirección en memoria que apunta al inicio de un arreglo de cadenas.</p> Signup and view all the answers

    ¿Qué valor indica el fin de la captura de datos en el programa?

    <p>La matrícula cero.</p> Signup and view all the answers

    ¿Cuál de las siguientes opciones es correcta sobre el uso de puts en el código?

    <p>Imprime una cadena seguida de un salto de línea.</p> Signup and view all the answers

    ¿Cuál de las siguientes funciones no está presente en el módulo alturasUtils?

    <p>calculaPromedioAlturas()</p> Signup and view all the answers

    ¿Qué estructura de datos se utiliza para almacenar las alturas de los alumnos?

    <p>Un arreglo unidimensional.</p> Signup and view all the answers

    ¿Qué se debe definir primero para utilizar la función despliegaMenu?

    <p>La cantidad de opciones disponibles en el menú.</p> Signup and view all the answers

    ¿Cuál es el retorno de buscaMayuscula si no encuentra ninguna letra mayúscula en la cadena?

    <p>El carácter de fin de cadena <code>' '</code>.</p> Signup and view all the answers

    ¿Qué función se encarga de desplegar la tabla de datos de los alumnos?

    <p>despliegaDatos()</p> Signup and view all the answers

    ¿Cómo se ordenan las matrículas en el programa?

    <p>Usando el algoritmo de selección.</p> Signup and view all the answers

    ¿Qué ocurre si el usuario elige consultar otra altura?

    <p>Se le pregunta si desea continuar la consulta.</p> Signup and view all the answers

    ¿Qué tipo de dato se requiere para las alturas de los alumnos?

    <p>Dobles.</p> Signup and view all the answers

    ¿Cuál es el orden de los caracteres que la función reconoce?

    <p>Una secuencia de espacios, signo opcional, dígitos y punto decimal.</p> Signup and view all the answers

    ¿Qué función emula la función strncpy() en el módulo funcionesCadenas?

    <p>Una función para copiar una cantidad específica de caracteres de una cadena.</p> Signup and view all the answers

    ¿Qué operación se realiza primero en la función main() del módulo cadenas?

    <p>Copiar la cadena 'Hola' a la cadena msj.</p> Signup and view all the answers

    ¿Qué función se usa para convertir una cadena a mayúsculas en el módulo funcionesCadenas?

    <p>strupr()</p> Signup and view all the answers

    ¿Cuál de las siguientes cadenas será convertida correctamente a mayúsculas?

    <p>'HOLA MUNDO'</p> Signup and view all the answers

    ¿Qué función se utiliza para comparar los contenidos de dos cadenas?

    <p>strcmp()</p> Signup and view all the answers

    ¿Cuál es el resultado de comparar las cadenas 'perro' y 'perro' utilizando strcmp()?

    <p>Devuelve cero.</p> Signup and view all the answers

    ¿Qué hace la función strchr() en el módulo funcionesCadenas?

    <p>Busca la primera ocurrencia de un carácter en una cadena.</p> Signup and view all the answers

    ¿Cuál es la diferencia principal entre 'msj' y 'pMsj' en las declaraciones proporcionadas?

    <p>'msj' es una dirección constante, 'pMsj' es un apuntador.</p> Signup and view all the answers

    ¿Qué pasará si se intenta ejecutar 'msj = "Adiós"'?

    <p>Generará un error porque 'msj' es una cadena constante.</p> Signup and view all the answers

    ¿Qué función se utiliza para copiar una cadena completa de 'orig' a 'dest'?

    <p>strcpy</p> Signup and view all the answers

    ¿Cómo se comporta 'strcmp' cuando las cadenas son iguales?

    <p>Regresa 0.</p> Signup and view all the answers

    ¿Cuál de las siguientes afirmaciones sobre 'strcat' es correcta?

    <p>Concatena la cadena 'orig' al final de 'dest'.</p> Signup and view all the answers

    ¿Qué hace la función 'strncmp'?

    <p>Compara hasta n caracteres de dos cadenas.</p> Signup and view all the answers

    ¿Cuál de las siguientes afirmaciones es incorrecta respecto a 'pMsj'?

    <p>Es un arreglo de caracteres.</p> Signup and view all the answers

    ¿Qué resultado puede devolver 'strcmp' si s1 es menor que s2?

    <p>Un número menor que 0.</p> Signup and view all the answers

    Study Notes

    Función atof

    • La función atof convierte una cadena de caracteres que representa un número de punto flotante a un valor de doble precisión.
    • La función reconoce caracteres en el siguiente orden:
      • Una secuencia opcional de espacios y caracteres de tabulación.
      • Un signo opcional (+ o -).
      • Una secuencia de dígitos y un punto decimal opcional.
      • Los dígitos pueden ir a ambos lados del punto decimal.
      • Opcionalmente, el carácter e o E seguido de un entero con signo.
    • El primer carácter no reconocido termina la conversión.
    • El archivo de cabecera es stdlib.h

    Manejo de Cadenas

    • El programa implementa funciones para el manejo de cadenas en dos módulos: funcionesCadenas y cadenas.
    • El módulo funcionesCadenas contiene funciones que se comportan de manera similar a las funciones estándar de la biblioteca string.h:
      • strcpy()
      • strncpy()
      • strcat()
      • strcmp()
      • strchr()
      • strupr()
    • El módulo cadenas contiene la función main(), la cual realiza las siguientes operaciones con las cadenas:
      • Copia la cadena "Hola" a la cadena msj.
      • Copia los primeros dos caracteres de la cadena "Hola" a la cadena msj.
      • Concatena la cadena ", mundo" a la cadena msj.
      • Compara las cadenas "perro" y "perro".
      • Compara las cadenas "can" y "arbol".
      • Compara las cadenas "casa" y "caza".
      • Busca la primera ocurrencia del carácter ‘a’ en la cadena "entramado".
      • Busca la primera ocurrencia del carácter ‘h’ en la cadena "entramado".
      • Convierte la cadena "hola mundo" a mayúsculas.

    Apuntadores a Constantes Cadena

    • Ambas declaraciones char msj[] = "Hola"; y char *pMsj = "Hola"; crean cadenas, pero con diferentes comportamientos:
      • msj es una constante y no se puede modificar, por lo tanto:
        • msj++ es un error.
        • msj = "Adiós"; es un error.
      • pMsj es un apuntador, lo que permite modificar su valor:
        • pMsj++ es válido.
        • pMsj = "Adiós"; es válido.

    Funciones para Manejo de Cadenas

    • Las funciones de la biblioteca estándar para el manejo de cadenas respetan la convención de que las cadenas terminan en el carácter de fin de cadena.
    • El archivo de cabecera es string.h
    • Funciones:
      • char *strcpy(char *dest, const char *orig);
        • Copia la cadena orig a la cadena dest.
        • La función regresa un apuntador a dest.
      • char *strncpy(char *dest, const char *orig, size_t n);
        • Copia exactamente n caracteres de la cadena orig a la cadena dest.
        • La función regresa un apuntador a dest.
      • char *strcat(char *dest, const char *orig);
        • Concatena la cadena orig a la cadena dest.
        • La función regresa un apuntador a dest.
      • char *strncat(char *dest, const char *orig, size_t n);
        • Concatena cuando mucho n caracteres de la cadena orig a la cadena dest.
        • La función regresa un apuntador a dest.
      • int strcmp(const char *s1, const char *s2);
        • Compara las cadenas s1 y s2 lexicográficamente.
        • La función regresa un entero que es menor que 0 si s1 es menor que s2;
        • Regresa 0 si s1 es igual a s2.
        • Regresa un número mayor que 0 si s1 es mayor que s2.
      • int strncmp(const char *s1, const char *s2, size_t n);
        • Compara cuando mucho n caracteres de las cadenas s1 y s2 lexicográficamente.
        • La función regresa un entero que es menor que 0 si en los primeros n caracteres s1 es menor que s2.
        • Regresa 0 si en los primeros n caracteres s1 es igual a s2.
        • Regresa un número mayor que 0 si en los primeros n caracteres s1 es mayor que s2.

    Arreglos de Cadenas

    • Los arreglos de cadenas son arreglos donde cada elemento es a su vez una cadena.
    • Ejemplo:
      • char opcMenu[] = { "Altas", "Bajas", "Cambios", "Depurar“, "Iniciar", "Listar", "Salir"};
    • Código para desplegar un menú de opciones:
      #include <stdio.h>
      
      void despliegaMenu(char opcMenu[], int nOpc) {
          int i;
          puts("");
          for(i = 0; i < nOpc; i++) puts(opcMenu[i]);
      }
      

    Arreglos de Apuntadores a Cadenas

    • Los arreglos de apuntadores a cadenas son arreglos donde cada elemento es un apuntador a una cadena.
    • Ejemplo:
      • char *pOpcMenu[] = {"Altas", "Bajas", "Cambios", "Depurar“, "Iniciar", "Listar", "Salir"};
    • Código para desplegar un menú de opciones:
      #include <stdio.h>
      
      void despliegaMenu(char *pOpcMenu [], int nOpc) {
          int i;
          puts("");
          for(i = 0; i < nOpc; i++) puts(pOpcMenu[i]);
      }
      

    Ejemplo 1: Arreglos de Apuntadores a Cadenas

    • El módulo menu contiene las siguientes funciones:
      • void despliegaMenu(char *pOpcMenu[], int nOpc):
        • Despliega un menú de opciones dado un arreglo de apuntadores a cadenas.
      • int selOpcionMenu(char *pOpcMenu[], int nOpc):
        • Permite seleccionar una opción del menú presionando la letra mayúscula que aparece en la opción.
        • Regresa el índice de la opción seleccionada.
        • Si el usuario teclea una letra que no corresponde a ninguna opción, la función regresa -1.
      • static char buscaMayuscula(const char *s):
        • Busca la primera ocurrencia de una letra mayúscula en la cadena s.
        • Regresa la letra mayúscula si la encuentra, el carácter de fin de cadena \n, en caso contrario.
    • El módulo demoMenu contiene la función main() la cual:
      • Despliega un menú.
      • Permite al usuario seleccionar una opción del menú.
      • Despliega la opción seleccionada.

    Ejemplo 2: Arreglos de Apuntadores a Cadenas

    • Se requiere un programa que lea información de alumnos (matrículas, nombres y alturas) y realice lo siguiente:
      • Lea la información de los alumnos y la almacene en los arreglos matriculas, nombres y alturas.
      • Despliegue una tabla con la información de los alumnos.
      • Ordene los arreglos en orden ascendente por las matrículas.
      • Despliegue la tabla ordenada por matrícula.
      • Busque y despliegue los nombres y las alturas de los alumnos dadas sus matrículas.
    • El programa tiene dos módulos:
      • alturasUtils
      • main
    • Módulo alturasUtils:
      • leeDatos():
        • Lee la información de los alumnos y la almacena en los arreglos matriculas, nombres y alturas.
        • La función termina la lectura cuando encuentra una matrícula 0.
        • Regresa el número de alumnos.
      • despliegaDatos():
        • Despliega una tabla con la información de los alumnos.
      • ordSelecciónMatricula():
        • Ordena en forma ascendente de las matrículas los arreglos matriculas, nombres y alturas, por el algoritmo de selección.
      • consultaMatricula():
        • Realiza las consultas de nombres y alturas por matrícula.
        • Llama a la función busquedaSecuencialMatricula() para buscar una matrícula.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Cadenas en C.pdf

    Description

    Este cuestionario se centra en la función atof y el manejo de cadenas en el lenguaje de programación C. Explora cómo se realizan las conversiones de cadenas a números de punto flotante, así como las funciones de manejo de cadenas disponibles en los módulos. Prepárate para evaluar tus conocimientos sobre estos aspectos fundamentales de la programación en C.

    More Like This

    Use Quizgecko on...
    Browser
    Browser