获取字符数组的输入

时间:2011-09-23 14:00:59

标签: c

我正在编写一个程序来查找今天最长的公共子序列,并且我将每个序列的元素转换为字符数组。但我遇到了一个小问题。我使用for循环来获取元素,但无论我设置循环应该执行的迭代次数有多高,它总是在5次迭代后终止。输入数据的数组是一个大小为10的数组,因此数组大小没有问题。我编写了一个小的测试程序来检查,甚至在测试程序中,获取字符数组数据的for循环总是在5次迭代后终止。为什么?(我在实验室中被迫使用turbo c ++)

#include<stdio.h>
void main()
{
     int i;
     char s[10];
     for(i=0;i<10;i++)
     scanf("%c",&a[i]);
 }

上面的代码是测试程序。在这里也经过5次迭代后循环终止!

3 个答案:

答案 0 :(得分:2)

换行符('\n')也是字符。如果您输入H<return>e<return>l<return>l<return>o<return>,他们输入了10个字符。

答案 1 :(得分:1)

将整个“数组”作为单个字符串一次性读取是一个更好的主意:

char s[10];
fgets(s, sizeof s, stdin);

答案 2 :(得分:1)

让我猜一下,你在每个角色后按returnscanf()电话会同时阅读这些内容......