C语言小题目!

来源:百度知道 编辑:UC知道 时间:2024/09/25 22:26:42
一题:
main()
{char str[13];scanf("%s",str);printf("%s\n",str);}
若输入abcd1234 efgh<回车>则程序输入结果是abcd1234 为什么?

#include<stdio.h>
#define N 6
main()
{
char c[N]; int i=0;
for(;i<N;c[i]=getchar();i++);
for(i=0;i<N.putchar(c[i]),i++);
}
输入以下三行,每一行输入都是在第一列开始,<CR>代表一个回车符
1<CR>
2<CR>
345<CR>
输入结果是1
2
34
怎么算的??

1,
main()
{char str[13];scanf("%s",str);printf("%s\n",str);}
若输入abcd1234 efgh<回车>则程序输入结果是abcd1234 为什么?

scanf("%s",str); 遇到空格, 读取截止.所以只读取abcd1234

2,
c[N]中的各项值是1<CR>2<CR>34
使用getchar()时会读取回车符的.
如果将for(;i<N;c[i]=getchar();i++); 改为
for(;i<N;scanf("%c", &c[i]),i++); 的话就能输出12345