2014-11-14 48 views
0

我想将一个字符从一个变量放到C中的一个字符数组中。另外我想打印后面的反转数组,因为您可以看到但现在不是问题。如何将字符从变量放入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在第一个花括号“预期表达式”之后的第35行说。

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

所以我想它失败了。我假设我不能像数组中那样放置字符变量?否则我会怎么做呢?

PS:我是新来的C.

+2

您是否尝试删除'counter'周围的'{'和'}'? – mch 2014-11-14 13:24:25

+1

'character_array [j] = counter;'但是最好使用'scanf(“%s”,character_array);'并且一次读取整个字符串。请注意,你的character_array数组最好再长一点! – i486 2014-11-14 13:26:15

+2

和'getchar(stdin)' - >'getchar()' – BLUEPIXY 2014-11-14 13:27:45

回答

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

工作过,谢谢! – LoLei 2014-11-14 13:29:21

1
character_array[j] = counter; 

就这么简单,我认为

+0

工作过,谢谢! – LoLei 2014-11-14 13:28:58

相关问题