相关语法知识
char c[1010];
scanf("%s", c);
系统自动在字符串后面加一个’\0’结束符。
但是遇到空白字符就终止
printf("%s", c);
按字符数组名c找到其数组起始地址,然后逐个输出其中的字符,直到遇到’\0’为止。
gets( c);
空格也读,回车为止,末尾\n替换成\0
但是输入过长会导致缓冲区溢出
puts( c );
将一个字符串(以’\0’结束的字符数组)输出到终端。在输出时将字符串结束标志’\0’转换成’\n’,即输出完字符串后换行。
注意事项
1 %*c,用于吞掉N输入后的回车
2 puts后自带换行一个,注意格式
3 N之内以回车做分隔符,之外以空格做分隔符,分别对应puts和scanf的应用
4 以!=EOF做循环终止条件,=EOF时调用函数不成功,跳出
代码
// 字符数组输入输出函数的应用
#include <stdio.h>
int main()
{
int N,i;
char str[1010];
scanf("%d%*c", &N);
for (i = 0; i < N; i++)
{
gets(str);
puts(str);
printf("\n");
}
while (scanf("%s", str)!=EOF)
//why while (scanf("%s", str))不行,-1时仍循环,0才跳出
{
printf("%s\n", str);
printf("\n");
}
}