Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

245
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!