Cómo poner el carácter de variable en una matriz en C?

Quiero poner un personaje de una variable en una matriz de caracteres en C. También quiero imprimir la inversa de la matriz a posteriori, como se puede ver, pero ese no es el tema ahora.

Este es el código que tengo hasta ahora:

Como stdin estoy usando un fichero de texto con «< input.txt» como un argumento de línea de comandos, y tiene 57 caracteres.

#include <stdio.h>
#include <stdlib.h>

int main()
{
  int counter = 0;
  char character_array[57];
  int i = 0;
  int j = 0;
  char character = 0;

  //While EOF is not encountered read each character
  while (counter != EOF) 
  {
    //Print each character
    printf("%c", counter);
    //Continue getting characters from the stdin/input file
    counter = getchar(stdin);
    //Put each character into an array
    character_array[j] = { counter };
    j = j + 1;
  }

  //Print the array elements in reverse order
  for (i = 58; i > 0; i--)
  {
    character = character_array[i];
    printf("%c", character);
  }

  return 0;
}

Mi IDE dice en la línea 35 después de la primera llave de «espera de expresión».

//Put each character into an array
    character_array[j] = { counter };

Por lo que creo que falla ahí. Asumo que no puede poner la variable de caracteres igual que en la matriz? ¿Cómo puedo hacer esto de otra manera?

PS: soy nuevo en el C.

  • ¿has probado a quitar la { y } alrededor de counter?
  • character_array[j] = counter; Pero es mejor usar scanf( "%s", character_array ); y leer toda la cadena a la vez. Tenga en cuenta que usted character_array matriz es mejor ser más!
  • y getchar(stdin) –> getchar()
  • Gracias a todos, la eliminación de las llaves trabajado!
InformationsquelleAutor LoLei | 2014-11-14

2 Kommentare

  1. 0

    Quitar el { y } en esa línea, por lo que parece :

    character_array[j] =  counter ;

    Mejora código:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
      int counter = 0;
      char character_array[57];
      int i = 0;
      int j = 0;
      //char character = 0; Unused variable
    
      //While EOF is not encountered read each character
      while ((counter = getchar()) != EOF) 
      {
        //Print each character
        printf("%c", counter);
        character_array[j] = counter;
        j++;
      }
      for (i = j - 1; i >= 0; i--) /* Array indices start from zero, and end at length - 1 */
      {
        printf("%c", character_array[i]);
      }
    }
    • Trabajado, gracias!

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea