Hola y bienvenido de nuevo.
Quiero continuar nuestra discusión en algunas de las funciones de la
biblioteca c estándar.
Estas son muchas de las funciones ya pasamos en clase,
pero quería recordártelo.
Entonces hay muchas cosas importantes Varias funciones de la biblioteca
estándar de c que ya hemos abordado a lo largo del
curso con todos nuestros ejemplos y todos las cosas que hemos aprendido.
Hablamos mucho de funciones de cadena.
Y algunos de ellos son muy fáciles de usar. y algunos los usaremos mucho, por
lo que debería estar familiarizado con estos.
Para utilizar cualquiera de estas funciones, debe incluir la cadena del
archivo de encabezado. h, todo se define en cadena. h.
Hablamos de str cat.
Str cat concatena dos cadenas, dos parámetros que toma,
dos punteros de carácter.
Y devolverá un personaje puntero concatenado al otro.
Así que colocando un carácter nulo al final de la cadena
final, la función devuelve s1.
Str char esto busca un cadena que contiene un carácter.
Esto devolverá un estrella de personaje también.
Es una buena forma de buscar.
Hablamos de esto bastante un poco con cuerda de gato.
Str compare va para comparar dos cadenas.
Esta es la forma estándar de hacerlo.
Se necesitan dos punteros y devuelve un número entero.
Tuvimos algunos ejemplos de esto donde básicamente si devuelve cero, las
dos cadenas son iguales.
Si volvemos mayor o menor que, si
se vuelve mayor que cero, eso significa que s1 es usualmente mayor en tamaño alfabético.
Entonces, si pasas una cadena que contenía a y luego la segunda
cadena es b, devolvería mayor que cero porque o se volvería menor que cero porque a
es menor que b.
Si pasaste en b como el primero parámetro yc es el segundo parámetro
algún tipo de cadena comenzando con bo c, devolverá un
valor mayor que cero.
Entonces tienes que entender esos valores devueltos.
Eso es lo que es importante comparar.
Copia str.
Así es como puedes asignar una cuerda a otra cuerda.
Recuerde, cadenas, punteros y matrices de caracteres, no
puede asignar la cadena directamente utilizando el operador de asignación.
Para enteros y flotantes, puede simplemente use los operadores iguales.
No puedo hacer eso con cuerdas.
Entonces tienes que usar str copy cuando desea asignar una cadena a un puntero, puntero de
carácter o matriz de caracteres.
Puedes inicializar un personaje constante de cadena literal de matriz entre
comillas dobles.
Pero despus de eso, despus de la
inicialización si desea cambiarlo, tendrá que usar str copy.
Str longitud.
Otra función importante para obtener la longitud de una cuerda.
Esto devuelve un tamaño t que es el entero que representa la longitud.
Todas estas funciones de cadena tome punteros o matrices de
caracteres como parámetros.
Entonces necesitamos entender cómo funciona eso también.
Otra función de cadena strncat.
Recuerda todas las funciones que en cambio agregan el final son un poco
más seguros porque no tiene desbordamientos de búfer.
Entonces en strncat el tercer parámetro se agrega y esto dirá copiar
o concatenar tantos parámetros.
Por lo general, el tercer parámetro es va a ser del tamaño
del primer parámetro porque no quieres para copiar algo más grande que eso.
Estas funciones deben ser utilizado sobre
las otras funciones de cadena porque son seguro para el desbordamiento del búfer.
Strn compare.
De nuevo, compararás ciertos número de caracteres para s1 y s2.
Strn copy, aquí el tercer parámetro end probablemente sería la longitud de str
o el tamaño de s1.
Porque vas a copiar s2 y s1, pero no desea copiar más bytes
de los que s1 puede contener o almacenar.
Str char.
Aquí es donde puedes buscar la cadena de la última aparición de
un carácter.
Entonces notas que esto se ve muy familiar o similar al str char, aquí
hay una r extra.
Entonces, en lugar de devolver el primero ocurrencia, esto devolverá
la última ocurrencia, pero usó de la misma manera que el otro.
Str str.
Esto buscará una cadena.
Así que esta es una función de búsqueda donde está tratando de encontrar
esencialmente una subcadena dentro de una cadena.
Nuevamente, tomando dos punteros de caracteres.
Strtok.
Esta fue la función importante donde puede ayudar con el análisis de datos.
Strtok toma el delimitador como el segundo parámetro y
buscará ese carácter delimitador en cualquier lugar dentro de la cuerda.
Muy a menudo usas algo como un espacio o un salto de línea para s2.
Romperá la cuerda en una serie de fichas diferentes.
Nuevamente, úsalo cuando quieras para analizar datos normalmente.
Cada vez que tienes que llamar a strtok varias veces hasta
que con nulo si todavía estás buscando el siguiente tok que desea encontrar en
una cadena determinada.
También tuvimos algunos funciones de carácter.
Todas las funciones del personaje se definen en ctype. h.
El personaje funciona que nosotros se utilizaron las funciones is que verifican si
un carácter es alfanumérico o si está en blanco o si
es un control carácter un dígito, había una serie
de funciones diferentes allí.
Así que recuerda ese ctype. h permite nosotros para comprobar cuáles son
estos personajes diferentes en realidad.
También teníamos algunas funciones de conversión. en ctype. h, principalmente nuestros dos superiores.
Dos más abajo se lleva un personaje y dará el
equivalente en minúsculas de ese c.
Recuerda que tuvimos un desafío donde convertimos minúsculas a mayúsculas.
En ese desafío, agregamos a nuestra tabla ASCII, pero podríamos haber
llamado dos superiores en el carácter.
Podríamos haber establecido dos alrededor del carácter
siempre que incluyamos ctype. hy eso se convertiría una minúscula a una mayúscula.
Tuvimos mucho IO funciones, entrada y salida.
Nos concentramos en leer y escribiendo archivos, pero también
leemos la entrada desde el teclado, y generamos datos a la consola o la pantalla.
Entonces, para usar el IO más común funciones, eso es todo en
el standardio. h archivo de encabezado.
Este archivo tiene declaraciones para el diferentes funciones IO,
así como definiciones de constantes, como fin de archivo, estándar nulo en salida
estándar y error estándar.
Todos esos son valores constantes.
También hay una constante para el archivo de estructura de archivos.
Fclose es una función que solía cerrar nuestros arroyos.
Cierra el archivo identificado por el puntero de archivo.
Y devuelve cero si cerrar un éxito, de lo contrario eof.
Feof, esa es una función que no hicimos usar explícitamente, pero eso comprobará si estás o no
al final del archivo en lugar de compararlo con una constante,
puede hacer una feof.
Enjuague.
Esta es una función que se vaciará todos los datos del búfer interno.
A veces necesitas hacer esto cuando quieres empezar de nuevo, pero básicamente te
estás deshaciendo de cualquier cosa dentro de un búfer.
También tenemos fgetc.
Esto es lectura individual caracteres, toma un puntero de archivo.
Tenemos una posición para conseguirlo.
Esta es una de las funciones de posición.
Obtiene la posición actual del archivo para el archivo asociado
con el puntero de archivo y lo almacena en un tipo de posición f, que se define
en el estándar io. h también.
Teníamos nuestros fgets.
Esto estaba leyendo en cadenas.
Muy bonito, lee personajes. del archivo indicado, pero
número de caracteres.
Fopen abrirá un archivo en un modo específico: leer, escribir o agregar
usando un puntero de archivo.
Fprintf escribirá datos y formateará salida, y es similar a la función printf,
tomará el argumentos especificados por el puntero y luego usar
datos formateados para escribir.
Entonces puedes escribir enteros, dobles usando especificadores de formato y luego las
variables que desea escribir.
También teníamos fputc, que escribir caracteres en un archivo.
Fputs escribirá una cadena en un archivo.
Se necesita un búfer y un archivo. puntero sobre lo que desea escribir y
el archivo en el que desea escribir.
Fscanf leerá datos de un archivo.
Tomará la entrada y utilizará el mismo tipo de formato
que tomará scanf especificadores de formato y variables.
Pero esto es bueno, quieres leer datos separados por espacio.
Puede usar fscanf y puede especificar el tipo, así que léalo directamente
en ints, dobles, tipos de datos específicos.
Fseek va a mover la posición del lugar al que apunta en un archivo.
Entonces no tienes que empezar por el principio o final de un archivo.
Puedes ir directamente a la mitad del archivo.
Una vez que busque esa posición, su La próxima lectura o escritura utilizará
esa posición para escribir o leer.
La posición de Fset es similar a fseek.
Establece la posición actual del archivo.
en el archivo asociado con el puntero de archivo al valor apuntado por la posición f, fpos.
También tuvimos ftell.
Ftell va a devolver cómo muchos bytes desde el principio
se basa en el puntero de archivo.
Entonces es el relativo fuera del sitio en bytes desde la posición actual,
no siempre el principio, pero la posición actual.
Usamos el ftell en uno de nuestros desafíos para leer un archivo al revés.
Printf.
Usamos esto probablemente más que cualquier otra función.
Esto estaba mostrando salida a la pantalla.
Utiliza especificadores de formato y un número variable de
argumentos separados por comas.
Printf es muy útil para depurar y mostrar la salida, que se hace
bastante dentro de un programa en c.
Eliminar.
Eliminar es una función donde puede eliminar un archivo.
Toma un nombre de archivo.
El puntero de archivo debe estar cerrado.
No puedes tenerlo abierto.
Cambiar nombre cambiará el nombre de un archivo a el otro archivo, también debe cerrarse,
el archivo no se puede abrir.
Scanf leerá la entrada de generalmente por defecto desde el teclado.
Puedes cambiarlo para leer la entrada de otras corrientes si lo desea.
También teníamos funciones de conversión que discutimos a lo largo del curso.
La mayoría de estas funciones están en el lib estándar. h archivo, archivo de encabezado.
Teníamos la función atof.
Esto es convertir una cadena en un flotar, y lo pasas en una cuerda.
Tenemos funciones atoi.
Esta convirtiendo un cadena a un número entero.
Atol está convirtiendo una cadena en una de largo, y pasa la cadena
y devuelve el retorno método al que se está convirtiendo.
Son muy útiles.
A menudo los usa para convertir cadenas a algún tipo de número.
Atoll lo convierte en un int largo.
Pero asegúrate de mirar el archivo de encabezado lib estándar para
más funciones de conversión.
Teníamos nuestras funciones de memoria, nuestras Funciones de asignación de memoria dinámica.
Estos son realmente importantes.
La asignación de memoria dinámica es importante porque es mucho más eficiente.
Solo utiliza el memoria que necesita.
No crea datos estáticos.
Permite que tu programa para ser mucho más flexible.
Todas estas funciones son incluido dentro de lib estándar. h.
Hablamos de calloc.
Calloc es una gran función donde puede asignar un tamaño determinado
y eso se multiplicará por n.
Entonces puedes especificar el tipo de datos también y lo multiplicará.
Lo bueno de calloc, inicializa sus datos.
Por lo que es realmente preferido sobre malloc.
Tenemos nuestra función libre que borrará la memoria.
Todo este recuerdo se va para ser creado en el montón.
Así que estaremos mucho más tiempo, pero depende de usted, como
programador, administrar esta memoria.
Siempre quieres liberar tu memoria una vez que haya terminado
de usarla porque la memoria es escasa recurso en otros programas y queremos
usar esa memoria.
Así que siempre llama gratis después haces un calloc o malloc.
Malloc es más simple versión de crear memoria.
En realidad no inicializar cualquier dato.
Solo toma el tamaño como parámetro.
Devuelve una estrella vacía.
Entonces siempre necesitas lanzarlo al igual que con calloc a cualquier tipo
de memoria que esté apuntando.
Si está apuntando a int o flotar, tienes que lanzar eso.
También tenemos realloc.
Realloc es increíble porque puedes en realidad se suman a la memoria existente.
Y de esta manera tu la memoria puede ser dinámica.
Puedes hacerlo más grande si desea almacenar más datos.
Realloc toma un puntero en el tamaño.
Mantendrá todos los datos que el recuerdo anterior apuntaba.
Asignará nueva memoria pero lo mantendrá, para que pueda agregar
algo de memoria existente.
Muy, muy útil.
Al crear memoria dinámicamente es realmente será útil en todos sus programas, especialmente porque
los punteros son muy, muy importantes, son
mucho más eficientes.
Pero asegúrate de entender todo estos archivos de encabezado que usamos a lo
largo del curso.
Estos son los principales que son muy, muy importantes.
Hablaremos de algunos nuevos en el el próximo par de conferencias que no pudimos discutir
tanto como a mí me gustó.
Pero estos son algunos importantes también.
Gracias.