题目 1094: 字符串的输入输出处理
题目描述
字符串的输入输出处理。
输入
第一行是一个正整数N,最大为100。之后是多行字符串(行数大于N), 每一行字符串可能含有空格,字符数不超过1000。
输出
先将输入中的前N行字符串(可能含有空格)原样输出,再将余下的字符串(不含有空格)以空格或回车分割依次按行输出。每行输出之间输出一个空行。
样例输入
2
www.dotcpp.com DOTCPP
A C M
D O T CPP
样例输出
www.dotcpp.com DOTCPP
A C M
D
O
T
CPP
这是一道蓝桥杯的普及题。刚开始使用了万能头文件#include <bits/stdc++.h> 但是在oj平台上就过不去,所以在oj平台慎用万能头文件。
字符串的输入和输出问题,我做题下来比较常用的几个关于字符串的函数有
- getchar() 读入一个字符
- putchar() 输出一个字符
- gets() 读入一行字符
- puts() 输出一行字符
- strcpy ( a , b ) 赋值
- strcmp ( a , b ) 比较
- strcat ( a , b ) 链接
这些都是比较常用的,(如果后面再遇到会继续补充),回到这题,这题是很典型的字符串输入输出问题,我们需要先输入一个数字N,接下来输入N行的字符串并一起输出出去,输出完之后就到我们的 while-EOF (while(scanf(%s,&x)!=EOF) 出场了,接着换行输出出去就行,比较简单。
接下来是代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int n;
scanf("%d",&n);
char x[1000];
getchar();
while(n!=0)
{
n--;
gets(x);
puts(x);
printf("\n");
}
while(scanf("%s",x)!=EOF)
{
printf("%s\n",x);
printf("\n");
}
}