• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

350
Views
¿Cómo agregar texto a una variable en C?

Estoy aprendiendo C en este momento y me encuentro con un problema, es difícil entender qué sucede con las variables y agregar texto a la variable en C.

Sé que C no está tratando las cadenas y el carácter como en otro lenguaje de programación. Si lo entiendo correctamente de mi libro: tengo que definir una variable antes de poder usarla, está bien para mí. Entonces, si hago este código, donde deseo imprimir la variable text_1 está fallando:

 #include <stdio.h> int main() { char text_1[]; text_1[] = "Testing"; printf("Test 1 is: %s", text_1); return(0); }

Pero si lo hago de esta manera, esto está funcionando:

 #include <stdio.h> int main() { char text_1[] = "Testing"; printf("Test 1 is: %s", text_1); return(0); }

En algún otro lenguaje de programación puedo hacerlo de esta manera: Dim a as string

 a="Testing" print("Testing 1 is:", a) --> or similar option to print out the variable 'a'.

¿Cuál es la forma correcta de hacer esto en C?

Gracias.

over 3 years ago · Santiago Trujillo
2 answers
Answer question

0

Vaya... El lenguaje C es un lenguaje de nivel bastante bajo si lo comparas con Java, Python o Ruby, o incluso con Basic o JavaScript:

  • no tiene noción de cadena de texto, pero solo usa matrices de caracteres terminadas en nulo en su biblioteca estándar
  • las matrices por sí mismas no son ciudadanos de primera clase: excepto en el momento de la inicialización, el lenguaje solo puede procesar elementos de matrices y no la matriz completa

En pocas palabras, una matriz tiene un tamaño que se define solo una vez (en el momento de la definición) y nunca cambiará durante la vida útil de la matriz. char text_1[] = "Testing"; es una inicialización idiomática: el tamaño de la matriz se establece en el número de caracteres de la cadena literal + 1 para el nulo de terminación, así que aquí 8. Después de eso, text_1 podrá contener otras cadenas de un máximo de 7 caracteres + 1 de terminación nulo si copia el carácter relevante, por ejemplo, con strcpy .

Para volver a su código, char text_1[]; declara una matriz incompleta con un tamaño declarado de 0 bytes. Eso significa que no puedes usarlo. Las 2 formas correctas serían:

 char text_1[] = "Testing"; // idiomatic initialization of a 8 characters array

o

 char text_1[8]; // definition of an uninitialized char array of size 8 strcpy(text_1, "Testing"); // copy a string into the array

No es realmente sexy, pero el lenguaje C es así...

over 3 years ago · Santiago Trujillo Report

0

Ok, para concluir, ¿cuál es la forma correcta de aprender a configurar una variable con una cadena de manera que pueda imprimirla en la pantalla o usarla para compararla con otras variables que también contienen cadenas?

Me gusta de esta manera, pero no estoy seguro de si es correcto usar:

 char * text_1; // btw. what is this `*` meaning here? text_1 = "Some text..."; printf("Variable text is: %s\n",text_1);

pero de esta manera también es aceptable para mí:

 char text_1[n]; // where n is a number of max char strcpy(text_1, "Some text..."); printf("Variable text is: %s\n",text_1);
over 3 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 Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error