Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Strings en programación C: Dominando declaración, inicialización y E/S

Strings en programación C

Este tutorial recorre los fundamentos de los strings en C: declaración, inicialización, entrada/salida, uso en funciones, punteros y funciones de biblioteca esenciales.

En C, un string es un array de caracteres terminado por un byte nulo \0. Por ejemplo:

char c[] = "c string";

El compilador añade automáticamente \0 a un literal de string, convirtiéndolo en un string C válido.

Strings en programación C: Dominando declaración, inicialización y E/S

¿Cómo declarar un string?

Los strings se declaran como arrays de caracteres. Por ejemplo:

char s[5];
Strings en programación C: Dominando declaración, inicialización y E/S

Esto declara un búfer que puede contener hasta 4 caracteres más el \0 terminador.


¿Cómo inicializar strings?

Están disponibles varios estilos de inicialización:

char c[] = "abcd";
char c[50] = "abcd";
char c[] = {'a', 'b', 'c', 'd', '\0'};
char c[5] = {'a', 'b', 'c', 'd', '\0'};
Strings en programación C: Dominando declaración, inicialización y E/S

Cuidado con desbordamientos de búfer: char c[5] = "abcde"; intenta almacenar seis caracteres (incluyendo \0) en un array de cinco bytes y debe evitarse.


Asignar valores a strings

Los arrays no pueden asignarse después de la declaración. En su lugar, use strcpy():

char c[100];
strcpy(c, "C programming");

Nota: La asignación directa como c = "C programming"; causa error de compilación.


Lectura de strings desde el usuario

Use scanf() para entrada delimitada por espacios:

#include <stdio.h>
int main() {
    char name[20];
    printf("Introduzca nombre: ");
    scanf("%s", name);
    printf("Su nombre es %s.", name);
    return 0;
}

Salida

Introduzca nombre: Dennis Ritchie
Su nombre es Dennis.

Solo se captura la primera palabra porque scanf() se detiene en espacios en blanco. El nombre del array decae a un puntero, por lo que name se pasa directamente.

¿Cómo leer una línea completa?

Use fgets() y puts():

#include <stdio.h>
int main() {
    char name[30];
    printf("Introduzca nombre: ");
    fgets(name, sizeof(name), stdin);
    printf("Nombre: ");
    puts(name);
    return 0;
}

Salida

Introduzca nombre: Tom Hanks
Nombre: Tom Hanks

fgets() lee hasta sizeof(name)-1 caracteres, incluyendo espacios. También retiene el salto de línea final, que puts() imprime.

Nota: gets() está obsoleto y fue eliminado del estándar C porque puede desbordar búferes.


Pasar strings a funciones

Los strings se pasan a funciones igual que los arrays. Ejemplo:

#include <stdio.h>
void displayString(char str[]);
int main() {
    char str[50];
    printf("Introduzca string: ");
    fgets(str, sizeof(str), stdin);
    displayString(str);
    return 0;
}
void displayString(char str[]) {
    printf("Salida del string: ");
    puts(str);
}

Strings y punteros

Los nombres de string decaen a punteros, permitiendo aritmética de punteros:

#include <stdio.h>
int main(void) {
    char name[] = "Harry Potter";
    printf("%c", *name); // H
    printf("%c", *(name+1)); // a
    printf("%c", *(name+7)); // o
    char *namePtr = name;
    printf("%c", *namePtr); // H
    printf("%c", *(namePtr+1)); // a
    printf("%c", *(namePtr+7)); // o
}

Funciones de string comúnmente usadas

Lenguaje C

  1. Dominando strings en C#: Fundamentos, operaciones y técnicas avanzadas
  2. Dominando los Espacios de Nombres en C#: Organización, Ámbito y Mejores Prácticas
  3. Cómo Pasar Arrays a Funciones en C++: Guía Práctica
  4. Dominando los operadores en programación C: guía completa
  5. Dominando funciones de cadena en C++: strcpy, strcat, strlen, strcmp – Ejemplos prácticos
  6. Cadenas en C hechas fáciles: Declaración, entrada, salida y funciones de biblioteca
  7. Dominar la programación en C: Tutorial completo para principiantes
  8. Domine las Operaciones de Strings en Python: Replace, Join, Split, Reverse y Conversión de Mayúsculas/Minúsculas
  9. Dominar Strings en Java: Creación, Métodos y Mejores Prácticas
  10. Dominando representaciones String en Enums de Java
  11. Clase String en Java: Dominando Creación y Manipulación de Cadenas