real time web analytics

Cadenas en lenguaje C

Las cadenas se utilizan a menudo en el lenguaje C. A través de ellos, un programa muestra los mensajes o resultados al usuario, ingresa la información al sistema, genera o consulta la información en bases de datos, compara o busca palabras en un texto, etc. También se utilizan para las funciones de especificar el rutas de archivos, seleccione los directorios de trabajo, etc.

En este artículo de Linux Hint, aprenderá todo sobre las cadenas. Explicaremos desde cero qué es una cadena, en qué elementos se compone y cómo se crea.

También veremos una sección especial que explica qué son los caracteres especiales y qué papel juegan los caracteres de control en una cadena.

Tras la explicación teórica, veremos los diversos ejemplos prácticos con fragmentos de código e imágenes donde te enseñamos a crear las cadenas y utilizar las funciones básicas que proporciona el lenguaje C para su gestión.

Cadenas en lenguaje C

Una cadena es un fragmento de texto que consta de caracteres alfanuméricos, símbolos y caracteres de control. El compilador procesa todo lo que está entre comillas como una cadena y automáticamente coloca un carácter nulo después del último carácter para indicar el final.

A continuación, veamos la cadena más conocida en programación:

El lenguaje C almacena las cadenas en matrices de elementos de tipo char o char sin firmar. El tipo de datos de los elementos debe especificarse en la declaración de la matriz como se muestra a continuación:

carbonizarse cadena_1[20];

no firmado carbonizarse cadena_2[20];

En este caso, la matriz string_1 tiene 20 elementos de tipo char y la matriz string_2 tiene 20 elementos de tipo char sin signo.

El tipo de datos de los elementos de la matriz determina el conjunto de caracteres que acepta la cadena. Un tipo de datos char acepta solo un carácter ASCII de 7 bits. El bit restante se usa como signo y verificación de paridad, por lo que solo los caracteres entre 0h00 y 0h80 de la tabla ASCII se pueden representar en este tipo de datos.

Los caracteres del tipo char sin signo no usan un bit de signo, por lo que sus 8 bits se usan para representar los caracteres entre 0h00 y 0hFF del código ASCII extendido.

Además de los caracteres y símbolos alfanuméricos, una cadena también puede contener los caracteres de control.

Caracteres de escape y control en el lenguaje C

Los caracteres de control tienen la función de realizar acciones específicas en la cadena que los contiene. Por ejemplo, un carácter “\n” antes del comienzo de una cadena significa que debe escribirse en una nueva línea.

#incluir

vacío principal(){

imprimir(\norteHola Mundo”);

}

El carácter de escape al final de la cadena indica que se va a escribir la cadena y el cursor se mueve a la siguiente línea.

#incluir

vacío principal(){

imprimir(“Hola Mundo\norte);

}

Todas las secuencias de escape constan de un carácter alfanumérico precedido por una barra invertida.

A continuación, vemos una tabla con los caracteres de escape más utilizados en el lenguaje C:

\norte Nueva línea
\r Retorno de carro
\a pitido de alerta
\t Tabulación
\v Tabulación vertical
\b Retroceso
\F Avance de formulario

Además de estos caracteres de escape, existen secuencias que le indican al compilador que debe incluir ciertos símbolos en la cadena. Por ejemplo, si queremos incluir un carácter de comillas dobles en el texto, el compilador lo interpretaría como un terminador de la cadena y no como un carácter más de la misma. Por esta razón, algunos símbolos deben estar precedidos por una barra invertida para que el compilador pueda insertarlos. En el siguiente ejemplo, vemos cuáles son estos:

\” Insertar comillas dobles
\’ Insertar comillas simples
\\ Insertar barra invertida
\? Insertar signo de interrogación

:

Cómo crear una cadena en el lenguaje C

Una de las formas de declarar una cadena es crear una matriz de caracteres de tipo char o char sin firmar de cierto tamaño, de la siguiente manera:

carbonizarse calle [50];

calle = “Hola Mundo”;

De esta forma, el compilador trata los datos que se almacenan en la matriz como una sola cadena al asignar un carácter nulo al final de la misma.

Cómo crear una cadena constante en el lenguaje C

Para crear una cadena constante, debe declarar una matriz de caracteres de tipo char o char sin firmar sin especificar su tamaño. Luego, asígnele la cadena como se muestra a continuación:

carbonizarse calle[] = “Hola Mundo”;

El compilador coloca automáticamente un carácter nulo al final de la cadena para indicar su final. Con este tipo de cadena, no es posible cambiar el contenido.

Cómo crear un puntero a la cadena en el lenguaje C

Otra forma de almacenar una cadena es declarar un puntero a la matriz que la almacena. Este método asigna dinámicamente el tamaño de la matriz de caracteres. Esta es la forma correcta de declarar un puntero de cadena:

carbonizarse *s_Ptr;

s_Ptr =“Hola Mundo”;

El método pointer es el más utilizado por las funciones del lenguaje C para referirse a una cadena en sus argumentos de entrada y salida.

Funciones para manejar las cadenas

A la hora de programar, es importante memorizar las funciones básicas para el manejo de las cadenas porque las usamos una y otra vez. Si los dominas, tu trabajo irá mucho más rápido.

Todas las funciones para manejar las cadenas se definen en el encabezado “cadena.h”. Para hacer uso de ellos, debe incluir este archivo en su código de la siguiente manera:

En la siguiente sección, le mostraremos brevemente cómo usar las funciones básicas de manejo de cadenas en el lenguaje C.

Cómo mostrar una cadena en el lenguaje C

La forma más común de mostrar una cadena en la pantalla es usar las funciones printf() o puts(), ambas definidas en el encabezado “stdio.h”. Estas funciones aceptan una cadena o un puntero a una cadena como argumento de entrada.

Ahora, veamos cómo se puede mostrar una cadena en la pantalla usando la función printf():

#incluir

vacío principal(){

imprimir(“Hola mundo 1\norte);

carbonizarse calle[15] = \nortehola mundo 2\norte;

imprimir ( “%s”,calle);

}

Si usa la función printf() y pasa un puntero de cadena como en el segundo caso, debe especificar en qué formato debe mostrarse. Dado que en este caso es una cadena, este formato se especifica con “%s” como primer argumento de entrada.

En la siguiente figura se puede ver la compilación y ejecución de este código:

Cómo copiar una cadena en lenguaje C

Hay varias formas de copiar una cadena en el lenguaje C. El método más utilizado es la función strcpy() que se define en el encabezado “string.h”. En el siguiente ejemplo, veremos la sintaxis de esta función:

La función strcpy() copia la cadena “s2” a la cadena “s1” e inserta un carácter nulo al final. La cadena “s2” se puede especificar explícita o implícitamente.

Ejemplo:

El siguiente código copia la cadena “s2” explícitamente especificada en la cadena “s1” y la muestra en la consola de comandos:

#incluir

#incluir

vacío principal ()

{

carbonizarse s1[20]=“”;

estresante(s1, \norte\norteHola Mundo\norte\norte);

imprimir(“%s”, s1);

}

La siguiente imagen muestra la compilación y ejecución de este código. En este caso, strcpy() copia la cadena de “s2” a “s1” y luego la imprime en la pantalla usando la función printf():

Cómo concatenar dos cadenas en el lenguaje C

La función que proporciona el lenguaje C para concatenar dos cadenas es strcat(). Veamos la sintaxis de esta función a continuación:

Esta función concatena la cadena “s2” en la cadena “s1”. Como todas las funciones de procesamiento de cadenas, strcat() coloca un carácter nulo al final de la cadena concatenada. Tanto “s1” como “s2” se pueden especificar explícita o implícitamente.

Ejemplo:

#incluir

#incluir

vacío principal ()

{

carbonizarse s1 [20]=\norte\norteHola “;

strcat(s1, “Mundo\norte\norte);

imprimir(“%s”,s1);

}

La siguiente imagen muestra la compilación y ejecución de este código. En este caso, strcat() concatena la cadena “s2” a la cadena “s1” y luego la imprime en la pantalla usando la función printf():

Cómo comparar dos cadenas en el lenguaje C

La función que proporciona el lenguaje C para comparar las cadenas es strcmp(). Veamos la sintaxis de esta función a continuación:

La función strcmp() compara las cadenas “s1” y “s2”. Si son iguales, devuelve un resultado que es igual a 0. Si no son iguales, devuelve un resultado que no es igual a 0.

Ejemplo:

#incluir

#incluir

vacío principal ()
{
carbonizarse s1 [50]=“igual”;
carbonizarse s2 [50]=“igual”;
carbonizarse s3 [50]=“no es igual”;

//caso 1
si (strcmp (s1, s2) ==0)
imprimir (\norte\nortes1 y s2 son iguales\norte\norte );
demás
imprimir (\norte\nortes1 y s2 no son iguales\norte\norte );

//caso 2
si (strcmp (s1, s3) ==0)
imprimir (\norte\nortes1 y s3 ​​son iguales\norte\norte );
demás
imprimir (\norte\nortes1 y s3 ​​no son iguales\norte\norte );
}

Vemos la compilación y ejecución de este código en la siguiente figura. En el caso 1, “s1” y “s2” son iguales, por lo que strcmp() devuelve 0. En el caso 2, “s1” y “s3” no son iguales, por lo que el programa ingresa el “si no” del “si” declaración.

Cómo cortar una cuerda en fragmentos

La función strsep() fragmenta la cadena a la que apunta stringp en partes, comenzando con un delimitador que se especifica en su argumento de entrada “delim”. Veamos ahora la sintaxis de esta función:

carbonizarse *strsep(carbonizarse **restringir stringp, constante carbonizarse *restringir delimitar);

Cuando strsep() encuentra un delimitador, lo reemplaza con un carácter nulo que marca el final del nuevo fragmento y establece el puntero en stringp a la siguiente posición. Esta función devuelve el puntero al nuevo fragmento en cada llamada, o un puntero nulo si no encuentra más delimitadores.

Ejemplo:

En este ejemplo, fragmentamos el “Hoy es un gran día para la programación” string y usamos un espacio como delimitador para que la cadena se fragmente palabra por palabra, lo que enviamos a la consola de comandos usando la función printf(). La llamada a la función strsep() se repite en un bucle while hasta que no encuentra más delimitadores y devuelve un puntero nulo.

#incluir

#incluir

vacío principal ()
{
carbonizarse pecado [50]= “Hoy es un gran día para la programación”;
carbonizarse* en_Ptr = pecado;
carbonizarse del [4] = ” “;
carbonizarse* o_Ptr;

mientras (o_Ptr != NULO){
o_Ptr = strsep( &en_Ptr, del);
imprimir(“%s\norte\norte, o_Ptr);}
}

La siguiente imagen muestra la compilación y ejecución de este código. Como podemos ver, strsep() fragmenta la cadena palabra por palabra y la función printf() imprime cada palabra en una nueva línea de la consola de comandos:

Conclusión

En este artículo de Linux Hint, explicamos en qué consiste una cadena en el lenguaje C.

Aprendimos de qué elementos están hechos, qué tipo de datos usan, cómo se codifican y qué caracteres admite cada tipo.

También explicamos las diferentes formas de declarar los arreglos o punteros para almacenar las cadenas, así como las instrucciones para asignarlos.

Para ayudarlo a familiarizarse con las cadenas en este lenguaje, usamos ejemplos prácticos y fragmentos de código para mostrarle qué son las cadenas y cómo usar algunas de las funciones básicas de procesamiento de cadenas.

Leave a Comment