我想做的是在循环中输入字符数组中的字符。我是C语言编程的新手,也不十分了解指针的用法。我的输入是这样的:
INPUT:
a b
c d
e f upto n times
我已经声明了两个数组char a[n],b[n];
,我想输入a in a[0]
,b in b[1]
,c in a[2]
...
这是我的尝试
char a[n],b[n];
for(i=0;i<n;i++)
{
scanf("%c %c",&a[i],&b[i]);
printf("%c %c",*(a+i),*(b+i));
}
但这不起作用!!如果我输入:ab输出是aa`
如果我运行您的代码,我会得到
a b
a bc d
c d
这意味着,scanf()
由于您告诉她读取字符,因此您在每行之后按的Enter将被解释为输入字符。另外,我有n = 3
,但是循环运行了两次,这也支持了这个想法。
您应该将其更改scanf()
为:
scanf(" %c %c",&a[i],&b[i]);
会吃掉换行符。
这是一个最小的示例:
int main(void) {
int n = 3;
int i;
char a[n],b[n];
for(i=0;i<n;i++) {
scanf(" %c %c",&a[i],&b[i]);
printf("%c %c\n",*(a+i),*(b+i));
}
return 0;
}
输出:
a b
a b
c d
c d
中的换行符printf()
仅用于格式化样式,而不是其他(例如错误地提出了注释)。
如果需要,您可以阅读我的页面:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句