GNU/Linux >> Tutoriales Linux >  >> Linux

Tutorial de programación de Linux C Parte 9:Cadenas

En esta serie de tutoriales de programación en C en curso, ya hemos abordado el concepto de matrices de caracteres. Estrechamente relacionado con las matrices de caracteres está el concepto de cadenas, que discutiremos aquí.

Una cadena difiere de una matriz de caracteres en un área principal:termina con un carácter nulo '\0'. No existe tal carácter de terminación en una matriz de caracteres. El siguiente fragmento de código muestra algunas formas en las que se puede definir una cadena:

#include <stdio.h>

int main()
{
char str[] = "string";
char str1[] = {'s','t','r','i','n','g','\0'};
char str2[10] = "string";
char str3[10] = {'s','t','r','i','n','g','\0'};
char *str4 = "string";

printf("\n str=%s, str1=%s, str2=%s, str3=%s, and str4=%s", str, str1, str2, str3, str4);

return 0;
}

Por lo tanto, un grupo de caracteres entre comillas dobles es una cadena (el carácter nulo de terminación está implícito allí), y una serie de caracteres que terminan explícitamente con un carácter \0 también es una cadena.

La salida de este programa es:

 str=string, str1=string, str2=string, str3=string, and str4=string

Tenga en cuenta que no puede imprimir matrices de caracteres que no sean cadenas de esta manera, ya que no hay un carácter Nulo de terminación allí para indicar el final de la matriz. Aquí hay un fragmento de código que intenta hacer esto:

#include <stdio.h>

int main()
{
char str[] = {'e','n','d'};
char c ='t';

printf("\n str=%s", str);

return 0;
}

Pero termina imprimiendo valores basura al final:

str=end??

Continuando, al igual que el especificador de formato %s en 'Printf' le dice al compilador que trate las variables de entrada como cadenas, también puede usar %s en la función 'scanf' para aceptar cadenas como entrada del usuario. He aquí un ejemplo:

#include <stdio.h>

int main()
{
char str[30];

printf("\n Enter a string with length less than 30 characters: ");
scanf("%s",str);

printf("\n str=%s", str);

return 0;
}

Vale la pena mencionar que una secuencia de cero o más caracteres entre comillas dobles se denomina constante de cadena o literal de cadena. Esto significa que tanto "howtoforge" como "" son constantes de cadena o literales de cadena.

Puede encontrar la longitud de una cadena usando la función estándar strlen(). He aquí un ejemplo:

#include <stdio.h>

int main()
{
char str[] = "howtoforge";

printf("\n Length of string 'howtoforge' is: %d", strlen(str));

return 0;
}

La salida producida por este programa es 10, que es exactamente el número de caracteres en 'howtoforge' y, por lo tanto, su longitud.

Continuando, vale la pena tener en cuenta que un carácter entre comillas simples (como 'd') y un carácter entre comillas dobles (como "d") son diferentes entre sí. Mientras que la primera es una constante de carácter (que se puede usar para producir un valor numérico del carácter en el conjunto de caracteres de la máquina), la segunda es una cadena (lo que significa que tiene un carácter \0 de terminación).

Finalmente, echemos un vistazo rápido a cómo se pueden pasar cadenas como argumentos a funciones.

#include <stdio.h>

void change_value(char s[])
{
s[0] = 'H';
s[5] = 'F';

printf("%s", s);

}

int main()
{
char str[] = "howtoforge";

change_value(str);

return 0;
}

Entonces, en el programa anterior, es el nombre de la matriz 'str' el que se pasa como argumento porque se refiere a la dirección base de la matriz. La declaración de la función 'cambiar_valor' es tal que espera una matriz como entrada. Aquí está el resultado de este programa:

HowtoForge                                                                                                        

Entonces, en este tutorial, discutimos los conceptos básicos de las cadenas, incluida la forma en que se definen y cómo se pueden usar. Aprenderemos más sobre las cadenas en los próximos tutoriales, pero este artículo debería ser suficiente para comenzar. Háganos saber en los comentarios a continuación si tiene alguna consulta o duda relacionada con las cadenas.


Linux
  1. Tutorial de Kali Linux Burp Suite

  2. Tutorial de Programación en C Parte 3 - Conceptos básicos de variables

  3. Tutorial de programación de Linux C Parte 12 - Operadores de asignación y expresiones condicionales

  4. Tutorial de programación de Linux C Parte 11 - Operadores aritméticos, relacionales y lógicos

  5. Tutorial de programación de Linux C Parte 15 - Números negativos y complemento 2s

Ejemplos de comandos curl de Linux – Parte 2

Ejemplos de comandos curl de Linux – Parte 1

Bash concatenar cadenas

Tutorial de comandos de cadenas de Linux para principiantes (5 ejemplos)

Cómo usar bash if -z y if -n para probar cadenas en Linux

Todo es un archivo en Linux - Parte 2