{"id":34020,"date":"2024-02-16T19:08:20","date_gmt":"2024-02-16T19:08:20","guid":{"rendered":"https:\/\/blogs.ugto.mx\/rea\/?p=34020"},"modified":"2024-02-16T19:08:21","modified_gmt":"2024-02-16T19:08:21","slug":"clase-digital-15-cadenas-de-caracteres","status":"publish","type":"post","link":"https:\/\/blogs.ugto.mx\/rea\/clase-digital-15-cadenas-de-caracteres\/","title":{"rendered":"Clase digital 15. Cadenas de caracteres"},"content":{"rendered":"\n\n\n<div class=\"wp-block-cover is-light\" style=\"min-height:284px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-40 has-background-dim\"><\/span><img decoding=\"async\" class=\"wp-block-cover__image-background wp-image-34316\" alt=\"\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.08.18.png\" data-object-fit=\"cover\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1152\" height=\"487\" class=\"wp-block-cover__image-background wp-image-34316\" alt=\"\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.08.18.png\" data-object-fit=\"cover\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.08.18.png 1152w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.08.18-300x127.png 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.08.18-1024x433.png 1024w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.08.18-768x325.png 768w\" sizes=\"auto, (max-width: 1152px) 100vw, 1152px\" \/><\/noscript><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<p class=\"has-text-align-center has-base-3-color has-text-color has-large-font-size wp-block-paragraph\">Cadenas de caracteres<\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"introduccion\">Introducci\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bienvenidas y bienvenidos nuevamente a una nueva clase digital del curso de Programaci\u00f3n B\u00e1sica. Esperamos que est\u00e9s disfrutando todo este recorrido que hemos realizado sobre el aprendizaje en programaci\u00f3n b\u00e1sica con lenguaje C.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En esta sesi\u00f3n estaremos trabajando con Cadenas de Caracteres.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Recordemos que un car\u00e1cter es una letra, un n\u00famero, un signo de puntuaci\u00f3n o alg\u00fan s\u00edmbolo (generalmente identificados en la tabla de c\u00f3digo ASCII).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Has estado trabajando en las sesiones pasadas en resolver problemas que usan valores de caracteres de tipo int, float, char, etc., para el uso de cadenas es necesario que recuerdes este tema de tipos de datos, as\u00ed como, la comprensi\u00f3n de apuntadores, ya que estos dos temas te llevaran a digerir m\u00e1s f\u00e1cilmente el funcionamiento de cadenas de caracteres.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las cadenas de caracteres nos permiten almacenar datos de tipo texto, n\u00fameros, signos de puntuaci\u00f3n o s\u00edmbolos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ejemplo de uso de almacenamiento con cadenas de caracteres puede ser cuando queremos guardar un nombre completo (nombres y apellidos), direcciones, comentarios, etc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A las cadenas de caracteres usualmente tambi\u00e9n se les llama vectores definidos de tipo char.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En esta clase aprender\u00e1s a crear arreglos de caracteres, usar apuntadores de caracteres, capturar cadenas e imprimirlas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Estas a poco tiempo de finalizar este curso, por tanto, sigue dando todo de ti practicando e investigando para ampliar tu conocimiento, \u00a1\u00c1nimo! Ver\u00e1s que las cadenas de caracteres es un tema sencillo y muy \u00fatil.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin m\u00e1s, \u00a1comencemos!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"desarrollo-del-tema\">Desarrollo del tema <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Como lo describimos en la introducci\u00f3n de la sesi\u00f3n un car\u00e1cter es una letra, un n\u00famero, un signo de puntuaci\u00f3n o alg\u00fan s\u00edmbolo (generalmente identificados en la tabla de c\u00f3digo ASCII). Las <strong>cadenas de caracteres<\/strong> nos permiten almacenar datos (secuencia de caracteres de tipo texto, n\u00fameros, signos de puntuaci\u00f3n o s\u00edmbolos). Ejemplo de uso de almacenamiento con cadenas de caracteres puede ser cuando queremos guardar un nombre completo (nombres y apellidos), direcciones, comentarios, etc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las cadenas en el lenguaje C son arreglos de caracteres (vectores unidimensionales), estas cadenas siempre terminan con el car\u00e1cter especial cero \u201c\\0\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sintaxis para declaraci\u00f3n de cadena:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>char nombrecadena[n];<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">donde n es el n\u00famero de elementos de tipo char, este arreglo almacenara la cadena.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">char cadena [9];<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este arreglo almacenar\u00e1 8 caracteres, el ultimo item ser\u00e1 la secuencia de escape &#8216;\\0&#8217; (car\u00e1cter nulo), por tanto, para reservar debemos usar la formula \u201cn+1\u201d. El car\u00e1cter &#8216;\\0&#8217;, pertenece a la cadena, pero no aparece al utilizar funciones como print.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Existen varias maneras de <strong>inicializar una cadena de caracteres<\/strong> (arreglo de caracteres):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">char cadena[] = \u00abLenguaje\u00bb;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">char cadena[] = {&#8216;L&#8217;,&#8217;e&#8217;,&#8217;n&#8217;,&#8217;g&#8217;,&#8217;u&#8217;,&#8217;a&#8217;,&#8217;j&#8217;,&#8217;e&#8217;,0};<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">char cadena[] = {&#8216;L&#8217;,&#8217;e&#8217;,&#8217;n&#8217;,&#8217;g&#8217;,&#8217;u&#8217;,&#8217;a&#8217;,&#8217;j&#8217;,&#8217;e&#8217;,&#8217;\\0&#8242;};<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inicializando cadena especificando el tama\u00f1o del arreglo:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">char cadena[9] = \u00abLenguaje\u00bb;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">char cadena[9] = {&#8216;L&#8217;,&#8217;e&#8217;,&#8217;n&#8217;,&#8217;g&#8217;,&#8217;u&#8217;,&#8217;a&#8217;,&#8217;j&#8217;,&#8217;e&#8217;,0};<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">char cadena[9] = {&#8216;L&#8217;,&#8217;e&#8217;,&#8217;n&#8217;,&#8217;g&#8217;,&#8217;u&#8217;,&#8217;a&#8217;,&#8217;j&#8217;,&#8217;e&#8217;,&#8217;\\0&#8242;};<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando se inicializa la cadena se reservan el n\u00famero de bytes que son necesarios para la cadena, y debe inicializarse con el n\u00famero de caracteres m\u00e1s uno, ya que para acceder a un elemento de la cadena de caracteres puede hacerse de la misma manera que a un acceso de un elemento de un array:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cadena[i]; donde: 0 &lt;=i &lt; n<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para trabajar con cadenas tambi\u00e9n podemos hacer uso de apuntadores. Se puede asignar un espacio para la cadena de compilaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el siguiente ejemplo se inicia una cadena, indicada por un apuntador a una variable del tipo char:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">char&nbsp; *cadena;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Declaraci\u00f3n de apuntador a una variable del tipo char llamado cadena, aqu\u00ed no est\u00e1 apuntando a nada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">char *cadena = \u201cLenguaje de Programaci\u00f3n en C\u201d;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El apuntador cadena es inicializado para que apunte al primer car\u00e1cter de la cadena. Una vez definida es un apuntador a la cadena. Y tambi\u00e9n puede declararse como:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">char *cadena [ ] = \u201cLenguaje de Programaci\u00f3n en C\u201d;&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ambas declaraciones son \u201cun apuntador a\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><u>Ejemplo 1. Impresi\u00f3n de cadena<\/u><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h&gt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">main()<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">{<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;&nbsp; char cadena [] = \u00abLenguaje de Programacion en C\u00bb;&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf( \u00abImpresion de la cadena: %s\\n\u00bb, cadena );<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf( \u00abTama\u00f1o de la cadena: %i bytes\\n\u00bb, sizeof cadena ); \/\/sizeof operador que nos indica la cantidad de almacenamiento en bytes<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><u>Salida Ejemplo 1<\/u><\/em><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.01.18.png\" alt=\"\" class=\"wp-image-34312\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"921\" height=\"277\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.01.18.png\" alt=\"\" class=\"wp-image-34312\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.01.18.png 921w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.01.18-300x90.png 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.01.18-768x231.png 768w\" sizes=\"auto, (max-width: 921px) 100vw, 921px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\">Funciones de entrada y salida de cadenas puts (), gets (), fscanf () y fprintf()<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>puts ()<\/strong> imprime en pantalla una cadena. puts pone en pantalla cadenas literales y variables de cadena, cada vez que puts imprime una cadena o car\u00e1cter, inserta una nueva l\u00ednea despu\u00e9s de la cadena que despliega.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>gets ()<\/strong> esta funci\u00f3n lee y almacena&nbsp;una cadena de caracteres introducida. Almacena la variable hasta que encuentra en la entrada un salto de l\u00ednea (\u201c\\n\u201d), pero el salto de l\u00ednea no es almacenado. gets agrega un car\u00e1cter de terminaci\u00f3n autom\u00e1ticamente null (\u201c\\0\u201d). gets almacena todo tipo de caracteres, tambi\u00e9n almacena espacios en blanco y no tiene l\u00edmite en el tama\u00f1o de cadena, para el uso de esta funci\u00f3n <strong>gets y puts<\/strong> es recomendable declarar la librer\u00eda string (#include &lt;string.h&gt;).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las funciones <strong>printf y scanf<\/strong> imprimen y reciben datos respectivamente de distintos tipos de datos utilizando \u201c%s\u201d para la salida y para la entrada en ambas funciones. <strong>scanf <\/strong><strong>()<\/strong> captura una cadena de texto y corta la introducci\u00f3n de este hasta que aparece el primer espacio o fin de l\u00ednea, por tanto, se pierde todo texto que le siga.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><u>Ejemplo 2. Uso de gets y puts (recuerda que gets corta la introducci\u00f3n de cadena hasta que encuentra un salto de l\u00ednea)<\/u><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h&gt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;string.h&gt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main(void)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">{<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; char cadena[200];<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; printf(\u00abEscribe una linea, podras probar el uso de la funcion gets(): \\n\u00bb);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; gets(cadena);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; printf(\u00abLa linea que has introducido, se imprimira con la funcion puts(): \\n\u00bb);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; puts(cadena);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><u>Salida de Ejemplo 2.<\/u><\/em><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.02.14.png\" alt=\"\" class=\"wp-image-34313\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"933\" height=\"221\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.02.14.png\" alt=\"\" class=\"wp-image-34313\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.02.14.png 933w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.02.14-300x71.png 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.02.14-768x182.png 768w\" sizes=\"auto, (max-width: 933px) 100vw, 933px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><em><u>Ejemplo 3. Leer con scanf<\/u><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h&gt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#define tam_cadena 50<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main(void)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">{<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; char cadena[tam_cadena];<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; int num1, num2;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; float num3;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; printf(\u00abIntroduce dos numeros enteros separados por espacio: \\n\u00bb);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; scanf(\u00ab%d %d\u00bb, &amp;num1, &amp;num2);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; printf(\u00abIntroduce un numero decimal:\\n\u00bb);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; scanf(\u00ab%f\u00bb, &amp;num3);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; printf(\u00abIntroduce una cadena:\\n\u00bb);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; scanf(\u00ab%s\u00bb,cadena); \/\/ recordemos que scanf al encontrar espacio en la introduccion rompe la cadena<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; printf(\u00abCadena leida:\\n\u00bb);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; printf(\u00ab%d %d %f %s\\n\u00bb,num1,num2,num3,cadena);<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp; return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<em>Salida Ejemplo 3<\/em><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.03.01.png\" alt=\"\" class=\"wp-image-34314\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"930\" height=\"340\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.03.01.png\" alt=\"\" class=\"wp-image-34314\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.03.01.png 930w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.03.01-300x110.png 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.03.01-768x281.png 768w\" sizes=\"auto, (max-width: 930px) 100vw, 930px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Con la biblioteca &lt;string.h&gt; podemos seguir encontrando muchas funciones pr\u00e1cticas para trabajar con cadenas de caracteres:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para ello no olvidemos incluir al inicio de nuestro .c:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;string.h&gt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Algunas de las funciones m\u00e1s usadas en esta biblioteca son:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>strlen( )<\/strong>: Devuelve la longitud de la cadena (n\u00famero de caracteres de la cadena ), no toma en cuenta null \u201c\\0\u201d<\/li>\n\n\n\n<li><strong>strcpy( )<\/strong> : Copia el contenido de una cadena a otra cadena. Se debe cuidar que ambas sean de la misma longitud.<\/li>\n\n\n\n<li><strong>strcat( )<\/strong> : Concatena el contenido de una cadena a otra. Se debe cuidar que la cadena destino tenga la longitud suficiente al concatenar.<\/li>\n\n\n\n<li><strong>strcmp( )<\/strong> : Compara las dos cadenas. Si son iguales, devuelve 0. Un n\u00famero negativo si cadena1 es mayor que cadena2, y un n\u00famero positivo si es al contrario.<\/li>\n\n\n\n<li><strong>sprintf( )<\/strong>: &nbsp;Imprime como printf una salida, pero no muestra el resultado en pantalla sino que lo guarda en una variable.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Otra funci\u00f3n importante es strtok()<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Divide una cadena en segmentos o t\u00f3kens. Esta divisi\u00f3n elimina la cadena segmento1 en el proceso. La forma de dividir la cadena depende de la secuencia de caracteres de la cadena segmento. A estos caracteres se les llama delimitadores. La funci\u00f3n pasara la secuencia la cadena en busca de alguno de los delimitadores de la cadena segmento. Cuando encuentra el delimitador, el proceso se detiene, ya que tiene un token. Posterior a las llamadas del strtok se divide la cadena segmento en otros tokens.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><u>Ejemplo 4. De delimitadores strtok()<\/u><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#include &lt;stdio.h&gt;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">int main()<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">{<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp; char segmento1[50] = \u00abUso de la funcion strtok()\u00bb;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp; char segmento2[5] = \u00bb \\n\\t\u00bb;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp; char *puntero;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp; printf( \u00absegmento1=%s\\n\u00bb, segmento1 );<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp; puntero = strtok( segmento1, segmento2 );&nbsp;&nbsp;&nbsp; \/\/ Primera llamada =&gt; Primer token<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp; printf( \u00ab%s\\n\u00bb, puntero );<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp; while( (puntero = strtok( NULL, segmento2 )) != NULL )&nbsp;&nbsp;&nbsp; \/\/ Posteriores llamadas<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp; printf( \u00ab%s\\n\u00bb, puntero );<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp; return 0;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><u>Salida Ejemplo 4.<\/u><\/em><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.04.07.png\" alt=\"\" class=\"wp-image-34315\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"937\" height=\"295\" src=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.04.07.png\" alt=\"\" class=\"wp-image-34315\" srcset=\"https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.04.07.png 937w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.04.07-300x94.png 300w, https:\/\/blogs.ugto.mx\/rea\/wp-content\/uploads\/sites\/71\/2024\/02\/Captura-de-Pantalla-2024-02-14-a-las-12.04.07-768x242.png 768w\" sizes=\"auto, (max-width: 937px) 100vw, 937px\" \/><\/noscript><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Para que sigas practicando, te recomiendo visitar:<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-fe48e5de wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/rodin.uca.es\/handle\/10498\/27638\" style=\"background:linear-gradient(135deg,rgb(240,152,0) 0%,rgb(240,152,0) 100%)\" target=\"_blank\" rel=\"noreferrer noopener\">      ACCEDE       <\/a><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Donde tienes acceso a este libro:&nbsp; <em>Ejercicios resueltos de programaci\u00f3n en C.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes acceder a este material con tu usuario y contrase\u00f1a institucional dominio @ugto.mx.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusi\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En resumen, una cadena es una secuencia de caracteres, estos caracteres pueden ser letras,<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">n\u00fameros, signos de puntuaci\u00f3n y s\u00edmbolos (c\u00f3digo ASCII). Una cadena de caracteres rompe la cadena con el car\u00e1cter nulo (null &#8216;\\0&#8217;).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El tipo de variable char nos permite almacenar caracteres, pero si lo que se desea es almacenar o reservar espacio para una cadena de caracteres debemos declarar char como un arreglo y como un puntero.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las funciones de entrada y salida, gets, puts, scanf, printf nos apoyan con el manejo de cadenas de caracteres, scanf rompe la cadena en el primer espacio que encuentra y gets rompe la cadena con salto de l\u00ednea.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Recordemos que la biblioteca #include &lt;string.h&gt; tiene diversas funciones que podemos incluir para la manipulaci\u00f3n de cadenas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los c\u00f3digos que fueron incluidos en esta sesi\u00f3n c\u00f3pialos y ejec\u00fatalos en tu equipo de c\u00f3mputo o compilador en l\u00ednea, pueden apoyarte en trabajos futuros.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a1Sigue adelante vas muy bien!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"fuentes-de-informacion\">Fuentes de informaci\u00f3n<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gottfried, B. S. (2005). Programaci\u00f3n en C. McGraw-Hill Interamericana.\u00a0Schildt H (1991), Programaci\u00f3n en TURBO C. McGraw-Hill.\u00a0\u00a0\u00a0<\/li>\n\n\n\n<li>C Programming Language, Brian W. Kernighan Dennis M. Ritchie. Prentice Hall; 2 ed.\u00a0<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n Bienvenidas y bienvenidos nuevamente a una nueva clase digital del curso de Programaci\u00f3n B\u00e1sica. Esperamos que est\u00e9s disfrutando todo este recorrido que hemos realizado sobre el aprendizaje en programaci\u00f3n b\u00e1sica con lenguaje C. En esta sesi\u00f3n estaremos trabajando con Cadenas de Caracteres. Recordemos que un car\u00e1cter es una letra, un n\u00famero, un signo de &#8230; <a title=\"Clase digital 15. Cadenas de caracteres\" class=\"read-more\" href=\"https:\/\/blogs.ugto.mx\/rea\/clase-digital-15-cadenas-de-caracteres\/\" aria-label=\"Leer m\u00e1s sobre Clase digital 15. Cadenas de caracteres\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":142,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_crdt_document":"","episode_type":"","audio_file":"","podmotor_file_id":"","podmotor_episode_id":"","cover_image":"","cover_image_id":"","duration":"","filesize":"","filesize_raw":"","date_recorded":"","explicit":"","block":"","itunes_episode_number":"","itunes_title":"","itunes_season_number":"","itunes_episode_type":"","footnotes":""},"categories":[880,881],"tags":[],"class_list":["post-34020","post","type-post","status-publish","format-standard","hentry","category-licenciatura-en-ingenieria-biomedica","category-uda-programacion-basica"],"acf":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/posts\/34020","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/users\/142"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/comments?post=34020"}],"version-history":[{"count":3,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/posts\/34020\/revisions"}],"predecessor-version":[{"id":34480,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/posts\/34020\/revisions\/34480"}],"wp:attachment":[{"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/media?parent=34020"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/categories?post=34020"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ugto.mx\/rea\/wp-json\/wp\/v2\/tags?post=34020"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}