Cuerdas en C

Las strings se definen como una array de caracteres. La diferencia entre una array de caracteres y una string es que la string termina con un carácter especial ‘\0’.

String-in-C

Declaración de strings : declarar una string es tan simple como declarar una array unidimensional. A continuación se muestra la sintaxis básica para declarar una string.

char str_name[size];

En la sintaxis anterior, str_name es cualquier nombre dado a la variable de string y el tamaño se usa para definir la longitud de la string, es decir, el número de caracteres que almacenarán las strings. Tenga en cuenta que hay un carácter de terminación adicional que es el carácter nulo (‘\0’) que se usa para indicar la terminación de una string que difiere de las strings de caracteres normales.

Inicializar una string : una string se puede inicializar de diferentes maneras. Explicaremos esto con la ayuda de un ejemplo. A continuación se muestra un ejemplo para declarar una string con el nombre str e inicializarla con «GeeksforGeeks».

1. char str[] = "GeeksforGeeks";

2. char str[50] = "GeeksforGeeks";

3. char str[] = {'G','e','e','k','s','f','o','r','G','e','e','k','s','\0'};

4. char str[14] = {'G','e','e','k','s','f','o','r','G','e','e','k','s','\0'};

A continuación se muestra la representación de memoria de una string «Geeks».

Veamos ahora un programa de muestra para comprender claramente cómo declarar e inicializar una string en C y también cómo imprimir una string.

// C program to illustrate strings
  
#include<stdio.h>
  
int main()
{   
    // declare and initialize string
    char str[] = "Geeks";
      
    // print string
    printf("%s",str);
      
    return 0;
}

Producción:

Geeks

Podemos ver en el programa anterior que las strings se pueden imprimir usando declaraciones normales de printf al igual que imprimimos cualquier otra variable. A diferencia de las arrays, no necesitamos imprimir una string, carácter por carácter. El lenguaje C no proporciona un tipo de datos incorporado para strings, pero tiene un especificador de acceso » %s » que se puede usar para imprimir y leer strings directamente.

A continuación se muestra un programa de muestra para leer una string del usuario :

// C program to read strings
  
#include<stdio.h>
  
int main()
{   
    // declaring string
    char str[50];
      
    // reading string
    scanf("%s",str);
      
    // print string
    printf("%s",str);
  
    return 0;
}

Puede ver en el programa anterior que la string también se puede leer usando una sola instrucción scanf. Además, podría estar pensando por qué no hemos usado el signo ‘&’ con el nombre de string ‘str’ en la instrucción scanf. Para comprender esto, tendrá que recordar su conocimiento de scanf. Sabemos que el signo ‘&’ se usa para proporcionar la dirección de la variable a la función scanf() para almacenar el valor leído en la memoria. Como str[] es una array de caracteres, usar str sin llaves ‘[‘ y ‘]’ dará la dirección base de esta string. Es por eso que no hemos usado ‘&’ en este caso, ya que estamos proporcionando la dirección base de la string para scanf.

Pasar strings a la función : como las strings son arrays de caracteres, podemos pasar strings a la función de la misma manera que pasamos una array a una función. A continuación se muestra un programa de ejemplo para hacer esto:

// C program to illustrate how to 
// pass string to functions
#include<stdio.h>
  
void printStr(char str[])
{
    printf("String is : %s",str);
}
  
int main()
{   
    // declare and initialize string
    char str[] = "GeeksforGeeks";
      
    // print string by passing string
    // to a different function
    printStr(str);
      
    return 0;
}

Producción:

String is : GeeksforGeeks

Artículos relacionados :

Este artículo es una contribución de Harsh Agarwal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *