Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

249
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda