C 获取字符数组的输入

C 获取字符数组的输入,c,C,今天我编写了一个程序来查找最长的公共子序列,并将每个序列的元素放入一个字符数组中。但我遇到了一个小问题。我使用for循环来获取元素,但不管我设置了多高的迭代次数,循环应该执行,它总是在5次迭代后终止。输入数据的数组是一个大小为10的数组,因此数组大小没有问题。我编写了一个小测试程序来检查,甚至在测试程序中,获取字符数组数据的循环总是在5次迭代后终止。为什么?(我在实验室中被迫使用Turbo C++) #包括 void main() { int i; chars[10]; for(i=0;i换行符

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

#包括
void main()
{
int i;
chars[10];

for(i=0;i换行符(
'\n'
)也是字符。如果您键入
H
e
l
l
o
,则您已经输入了10个字符。

换行符(
)也是字符。如果您键入
H
e
l
l
o
,那么您已经输入了10个字符。

最好将整个“数组”作为一个字符串同时读取:

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

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

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

让我猜猜,您在每个字符后按
return
?调用
scanf()
也会读取这些字符…

让我猜猜,您在每个字符后按
return
?调用
scanf())
call也会读取这些内容…

sigh至少在发布代码之前尝试编译代码。此外,循环肯定不会在5次迭代后终止,您应该在那里放置一些跟踪消息来查看它:/ok,我确实编译了它。我尝试过显示i after ever scanf语句。但它只是不断递增两次。sigh至少尝试一下在发布代码之前先编译代码。另外,循环在5次迭代后肯定不会终止,您应该在那里放一些跟踪消息来查看它:/ok,我编译了它。我尝试在每次scanf语句后显示i。但它只是不断递增两次。