Funciones de cadenas populares en C [con ejemplos]
Publicado: 2020-10-21Las cadenas en lenguaje C son una matriz de caracteres terminados en caracteres nulos ('\0'). El carácter nulo al final de una cadena indica su final y las cadenas siempre van entre comillas dobles. En el lenguaje C, los caracteres se encierran entre comillas simples. Algunos ejemplos de ambos se muestran a continuación;
Ejemplo o representación de caracteres C y cadenas
- char string[10] = { 's','d','f','d','t','j','a','\0' };
- char string[10]=”más reciente”;
- char string[]=”más fresco”;
Hay una pequeña diferencia entre las declaraciones de las cadenas en las dos declaraciones anteriores. Al igual que cuando declaramos char como cadena [10], se asignan 10 bytes de espacio de memoria para contener los 10 valores de cadena, mientras que cuando lo declaramos como cadena [], la memoria se asigna en el momento de la ejecución del programa.
Tabla de contenido
Declaración e inicialización de cadenas
En la programación C, las cadenas se pueden declarar de dos maneras, como se muestra arriba. En programación C, una cadena es una secuencia de caracteres que terminan con un carácter nulo o '\0'. Un ejemplo de la misma se da a continuación:
char temp[]=”cadena temporal”;
Cuando se declara una cadena de caracteres del tipo char que está encerrada entre comillas dobles, \0 se agrega automáticamente al final de la cadena. Por ejemplo:

char temp[]=”cadena temporal”;
t | mi | metro | pags | s | t | r | I | norte | gramo | \0 |
Declaración de cadena
Una cadena en lenguaje C se declara de la siguiente manera:
temperatura de char[5];
s[0] s[1] s[2] s[3] s[4]
De esta forma, podemos inicializar una cadena de longitud 5.
Inicialización de cadenas
La inicialización de cadenas se puede hacer de muchas maneras y algunas de ellas se detallan a continuación:
char t[]=”cadena temporal”;
char t[10]=”cadena temporal”;
char t[]={'t','e','m', 'd','\0'};
char t[5]={'t','e','m', 'd','\0'};
T | mi | metro | pags | \0 |
t[0] t[1] t[2] t[3] t[4]
En el tipo de declaración anterior, solo podemos almacenar las cadenas que tienen solo cuatro caracteres, mientras que si desea almacenar cinco caracteres en dicha cadena o matriz, es posible que necesite una matriz de caracteres de mayor longitud.
Leer: String Array en Java: Java String Array con ejemplos de codificación
Asignación de valores a cadenas
Las matrices y las cadenas no admiten los operadores de asignación. Una vez que se declaran las cadenas, no puede asignar los valores a las variables de tipo cadena. Por ejemplo en lenguaje C no podemos escribir y asignar los valores de la siguiente manera:
char t[100];
t=”valor temporal”;
Manejo de cadenas en C
Ahora vamos a enumerar algunas de las funciones de cadenas populares en C que facilitan bastante el manejo de cadenas. Varias operaciones en la cadena, como leer la cadena, copiar o invertir la cadena y muchas otras operaciones, se pueden realizar fácilmente en las cadenas mediante el uso de estas funciones.
Los operadores de cadena o las funciones de cadena se pueden usar directamente para manipular las cadenas. Aquí, en este artículo, explicaremos las funciones de la biblioteca como gets(), puts(), strlen(), strcopy() y muchas otras para explicar el manejo de cadenas en C.
A veces, los programadores tienen que escribir las funciones de cadena para manipularlas según el problema requerido. Sin embargo, la manipulación de cadenas se puede hacer manualmente, pero esto puede hacer que la programación sea bastante compleja y grande.
Hay una biblioteca estándar de funciones de cadena en C que se conoce como "cadena.h". Este archivo de encabezado con extensión ".h" tiene muchas funciones de manejo de cadenas que tienen una sintaxis diferente. Vamos a discutir algunos de ellos en la siguiente sección de este artículo:
Lista de algunas funciones comunes de manejo de cadenas en C
Función | Descripción |
strlen() | Puede calcular la longitud de la cadena. |
Strcpy() | Puede copiar el contenido de una cadena a otra |
Strcat() | Se utiliza para concatenar o unir dos cadenas |
Strcmp() | Puede comparar dos cadenas |
Strlwr() | Puede convertir la cadena a minúsculas |
strupr() | Se utiliza para convertir las letras de la cadena a mayúsculas. |
Strrev() | Se utiliza para invertir la cadena. |
Cuando tiene que usar cualquiera de las funciones de manejo de cadenas en su programa, las funciones no se limitan solo a estas muchas. Hay muchas otras funciones también. Entonces, hablemos de ellos:
1) pone() y obtiene()
Las dos funciones populares de obtención y colocación de archivos de encabezado de cadena se utilizan para tomar la entrada del usuario y mostrar la cadena respectivamente. Ambas funciones están definidas en el archivo string.h. Veamos un ejemplo de estas funciones:
#incluye principal()
Int principal()
{
temperatura de char[20];
printf(“Ingrese su Nombre”);
obtiene (temp);
printf(“Mi nombre es: ”);
pone (temp);
devolver 0;
}
2) strcat()
Para los casos en los que se debe agregar una cadena al final de otra cadena, se utiliza esta función. La función strcat puede agregar una copia de la cadena de origen al final de la cadena de destino. El usuario tiene que pasar dos argumentos que se describen a continuación:

yo) origen
ii) destino
Aquí, en el lugar de la cadena "src", se especifica, mientras que en el lugar de 'dest' se especifica la cadena de destino en la que tenemos que agregar la cadena de origen.
Ejemplo
#include<cadena.h>
int principal()
{
char src[20]= “antes”;
char dest[20]= “después”;
strcat(destino, src);
pone (destino);
devolver 0;
}
La salida será: después de antes
3) Función strlen()
Una función más del archivo de encabezado de cadena que se puede usar directamente para las cadenas es strlen(). Puede usar la función strlen(), la función de cadena en C , cuando tenga que averiguar la longitud de cualquier cadena. Sin embargo, también se puede escribir un programa manualmente para averiguar la longitud de cualquier cadena, pero el uso de esta función directa puede ahorrarle tiempo y el ejemplo se muestra a continuación:
#include<stdio.h>
int principal()
{
longitud int;
char s[20] = “Estamos aquí”;
longitud=strlen(s);
printf(“\La longitud de la cadena es = %d\n”, longitud);
devolver 0;
}
La longitud de la cadena es = 11
4) Función strcpy()
Si tiene que copiar el contenido de una cadena a otra cadena, entonces se está utilizando esta función. La sintaxis de la función es strcpy(dest,source). La función puede copiar el contenido de una cadena a otra. Un ejemplo de la función se da a continuación:
#include<cadena.h>
int principal()
{
char src[20]= “Destino”;
char destino[20]= “”;
printf(“\n cadena fuente es = %s”, src);
printf(“\n cadena de destino es = %s”, dest);
strcpy(destino, origen);
printf ("\cadena objetivo después de strcpy() = %s", dest);
devolver 0;
}
Producción
La cadena de origen es = Destino
La cadena de destino es =
Cadena de destino después de strcpy() = Destino
Aprenda: StringBuffer vs. StringBuilder: diferencia entre StringBuffer y StringBuilder
5) Función strcmp()
Para comparar dos cadenas y saber si son iguales o no, podemos usar la función strcmp(). La función devuelve un valor definido que puede ser 0, >0 o <0. En esta función, los dos valores pasados se tratan como mayúsculas y minúsculas, lo que significa que 'A' y 'a' se tratan como letras diferentes. Los valores devueltos por la función se utilizan como:
i) se devuelve 0 cuando dos cadenas son iguales
ii) Si str1<str2, se devuelve un valor negativo
iii) Si str1>str2, se devuelve un valor positivo
Ejemplo:
#include<stdio.h>
#include<cadena.h>
int principal()
{
char str1[]=”copiar”;
char str2[]=”Trofeo”;
int I, j, k;
i=strcmp(str1, “copiar”);
j=strcmp(str1, str2);
k-strcmp(str1, “f”);
printf(“\n %d %d %d”,I,j,k);
devolver 0;
}
Salida: 0 -1 1
6) Funciones strlwr() / strupr()
A veces, es posible que necesite convertir las letras minúsculas de cualquier cadena a mayúsculas o viceversa. Para este propósito, hay dos funciones de cadena directa en C , se pueden usar para realizar las conversiones de mayúsculas a minúsculas o viceversa. Aquí, hemos explicado un ejemplo de lo mismo:
#include<stdio.h>
#include<cadena.h>
int principal()
{
char str[]=”CONVERTIRme a minúsculas”;
printf(“%s\n”, strlwr(str));
devolver 0;
}
Salida: convertirme a minúsculas
De manera similar, si usamos la función strupr en lugar de strlwr, todo el contenido se convertirá a letras mayúsculas. Podemos usar la función strupr, definida en el archivo de encabezado de cadena. A través de esta función, todas las letras de la cadena se convierten, también sin ningún procedimiento manual largo.
7) Función strrev()
Si desea invertir cualquier cadena sin escribir un programa enorme o extenso manualmente, puede usar esta función. La función strrev() se usa para invertir el contenido de la cadena. La función Strrev se usa para verificar la naturaleza de la cadena, ya sea que la cadena dada sea un palíndromo o no. Varios otros usos y aplicaciones también están presentes en la función inversa de cadena. Uno de sus usos se da a continuación:
#include<stdio.h>
#include<cadena.h>
int principal()
{
char temp[20]=”Reversa”;
printf(“La cadena antes de invertir es: %s\n”, temp);
printf(“Cadena después de strrev() :%s”, strrev(temp));
devolver 0;
}

Algunas funciones más de manejo de cadenas con propósito:
Como dijimos anteriormente, existen más funciones de cadena en C. Algunas otras funciones comúnmente utilizadas para el manejo de cadenas en C son:
Función | Propósito |
strchr() | Devuelve un puntero a la primera aparición de char en str1 |
strdup() | Puede duplicar la cadena. |
strset() | Establece todos los caracteres de una cadena en el carácter dado |
strrchr() | Se utiliza para localizar la aparición de un primer carácter señalador |
Lea también: Clase de escáner en Java: tipos de constructores y métodos, cómo usarlo
Ultimas palabras
Al igual que cualquier otro lenguaje C, también tiene una amplia biblioteca de funciones integradas o listas para usar. Para manejar cualquier cadena de caracteres, puede usar estas funciones directamente. Sin embargo, las funciones no se limitan a estas. Hay muchas otras funciones de cadena en C en el archivo de encabezado. El principal beneficio de ellos es reducir el tiempo y la duración de la codificación.
Si está interesado en obtener más información sobre Java, OOP y desarrollo de software de pila completa, consulte el Diploma PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de formación rigurosa, 9 + proyectos y asignaciones, estado de ex alumnos de IIIT-B, proyectos finales prácticos y asistencia laboral con las mejores empresas.