Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

242
Vistas
En C, ¿es posible crear una cadena sin '\ 0 (null)'?

Quiero decir, hasta donde yo sé, una cadena 'terminaría' cuando aparece 'valor nulo (\ 0)'.

Y muchas funciones tienen que ver con el valor de retorno de la cadena y escapan tan pronto como se encuentra con el 'valor nulo' en la cadena.

Pero, ¿y si no hay un valor nulo en la cadena?

¿Es incluso posible crear tal cadena?

Como, ¿es posible crear una matriz?

 char cArray[100] ={};

y llenar todos los índices sin 'nulo'?.

Si es así, ¿cuál es la mejor manera de 'indicar el final de la cadena que no tiene ningún valor nulo'?

¿Es incluso 'una cadena' si no tiene un valor nulo?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

¿Es incluso posible crear tal cadena?

Puede tener matrices de char sin un elemento cero. Esos no son hilos.

Como, ¿es posible crear una matriz?

 char cArray[100]; // the original had the illegal initializer = {};

y llenar todos los índices sin 'nulo'?.

Sí, eso es perfectamente razonable ( memset(cArray, '*', 100); ). Pero cArray (o cualquier parte de él) no será una cadena.

Si es así, ¿cuál es la mejor manera de 'indicar el final de la cadena que no tiene ningún valor nulo'?

Si desea trabajar con secuencias de bytes sin un indicador, debe llevar la cuenta por separado.

 char NotAString[6] = "abcdef"; size_t n = 6; // remove the 'f' from NotAstring n = 5; // remove the 'b' memmove(NotAString + 1, NotAString + 2, 3); n -= 1; // the first `n` (4) bytes of NotAString are now 'a', 'c', 'd', and 'e' // don't care about bytes 5 and 6

¿Es incluso 'una cadena' si no tiene un valor nulo?

no

over 4 years ago · Santiago Trujillo Denunciar

0

Pero, ¿y si no hay un valor nulo en la cadena?

Entonces no es una cadena. Una "cadena" se define en 7.1.1 Definiciones de términos , párrafo 1 en el (borrador) estándar C11:

Una cadena es una secuencia contigua de caracteres que termina e incluye el primer carácter nulo. El término cadena de varios bytes se usa a veces para enfatizar el procesamiento especial dado a los caracteres de varios bytes contenidos en la cadena o para evitar confusiones con una cadena ancha. Un puntero a una cadena es un puntero a su carácter inicial (la dirección más baja). La longitud de una cadena es el número de bytes que preceden al carácter nulo y el valor de una cadena es la secuencia de los valores de los caracteres contenidos, en orden.

Sin ese "carácter nulo", la matriz NO es una "cadena" .

Punto final.

over 4 years ago · Santiago Trujillo Denunciar

0

Puede tener una matriz char sin el terminador nulo (después de todo, es como una matriz int), pero NO es una cadena (por definición) y no podrá usar todas las funciones estándar de C relacionadas con las cadenas ya que todos dependen de la presencia del terminador.

Al final, tendría que tratar la matriz de caracteres como una matriz genérica.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda