如何将字符从变量放入C中的数组?

时间:2014-11-14 13:20:49

标签: c arrays string character

我想将一个变量中的一个字符放入C中的字符数组中。另外我想要看到后面的反转数组,但现在不是问题。

这是我到目前为止所获得的代码:

作为标准我使用txt文件"< input.txt中"作为命令行参数,它有57个字符。

#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;
}

我的IDE在第一个大括号&#34;预期表达&#34;。

之后的第35行说
// Put each character into an array
    character_array[j] = { counter };

所以我猜它失败了。我假设我不能只在数组中放置像这样的字符变量?我怎么会这样做呢?

PS:我是C的新手。

2 个答案:

答案 0 :(得分:1)

character_array[j] = counter;

就是这么简单我认为

答案 1 :(得分:0)

删除该行中的{},使其如下所示:

character_array[j] =  counter ;

改进代码:

#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]);
  }
}