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

Cadenas en C: Cómo funcionan los arrays de caracteres terminados en nulo

Las cadenas son en realidad arrays unidimensionales de caracteres terminados por un carácter nulo '\0'. Así, una cadena terminada en nulo contiene los caracteres que la componen seguidos de un nulo.

La siguiente declaración e inicialización crean una cadena con la palabra "Hola". Para alojar el nulo final, el tamaño del array es uno más que el número de caracteres:

char saludo[6] = {'H', 'o', 'l', 'a', '\0'};

Siguiendo la regla de inicialización de arrays, puedes escribir:

char saludo[] = "Hola";

Representación en memoria:

Cadenas en C: Cómo funcionan los arrays de caracteres terminados en nulo

No colocas el nulo al final de una constante de cadena; el compilador C lo coloca automáticamente al inicializar el array. Imprimamos la cadena:

Demo en vivo
#include <stdio.h>
int main() {
    char saludo[6] = {'H', 'o', 'l', 'a', '\0'};
    printf("Mensaje: %s\n", saludo);
    return 0;
}

Resultado:

Mensaje: Hola

C soporta amplia gama de funciones para manipular cadenas terminadas en nulo:

NºFunción y Propósito
1

strcpy(s1, s2);

Copia cadena s2 en s1.

2

strcat(s1, s2);

Concatena s2 al final de s1.

3

strlen(s1);

Devuelve longitud de s1.

4

strcmp(s1, s2);

Devuelve 0 si iguales; <0 si s10 si s1>s2.

5

strchr(s1, ch);

Puntero a primera ocurrencia de ch en s1.

6

strstr(s1, s2);

Puntero a primera ocurrencia de s2 en s1.

Ejemplo usando algunas funciones:

Demo en vivo
#include <stdio.h>
#include <string.h>
int main() {
    char str1[12] = "Hola";
    char str2[12] = "Mundo";
    char str3[12];
    int len;
    /* copiar str1 en str3 */
    strcpy(str3, str1);
    printf("strcpy(str3, str1): %s\n", str3);
    /* concatenar str1 y str2 */
    strcat(str1, str2);
    printf("strcat(str1, str2): %s\n", str1);
    /* longitud total de str1 */
    len = strlen(str1);
    printf("strlen(str1): %d\n", len);
    return 0;
}

Resultado:

strcpy(str3, str1): Hola
strcat(str1, str2): HolaMundo
strlen(str1): 10

Lenguaje C

  1. Dominando strings en C#: Fundamentos, operaciones y técnicas avanzadas
  2. Dominando funciones de cadena en C++: strcpy, strcat, strlen, strcmp – Ejemplos prácticos
  3. Cadenas en C hechas fáciles: Declaración, entrada, salida y funciones de biblioteca
  4. Creación de listas de cadenas en VHDL: Buenas prácticas y ejemplo
  5. Domine las Operaciones de Strings en Python: Replace, Join, Split, Reverse y Conversión de Mayúsculas/Minúsculas
  6. Domine str.count() en Python: Cómo Contar Caracteres y Subcadenas con Ejemplos
  7. Dominar Strings en Java: Creación, Métodos y Mejores Prácticas
  8. Dominando representaciones String en Enums de Java
  9. Entendiendo Java String.charAt(): Sintaxis, tipo de retorno, excepciones y ejemplo práctico
  10. Dominando Java String.endsWith(): Cómo comprobar sufijos de cadena con ejemplos
  11. Clase String en Java: Dominando Creación y Manipulación de Cadenas