U646715 【弘毅24级】纸条(passnotes)
题目背景
有一天,本班的学生干事到我这来了,要我修眼镜,要借我的测试数据看。我检出来修了给他,却只翻检了一通,并没有说话。但他们一走,桌上就送到一封很薄的纸,拆开看时,第一句是:“事不过三”。
这是《西游记》第二十七回的句子罢,但经不知谁新近引用过的。其次的话,一张张被我撕了,毫不在意。末尾是匿名。
题目描述
最近收到了点纸条,写的话有点好听,像是人说出来的。我收到了 $n$ 张纸条,每张纸条上只有一行字,且仅由英文字母 $\texttt{A}\sim\texttt{Z}$ , $\texttt{a}\sim\texttt{z}$ ,数字 $\texttt{0}\sim\texttt{9}$ ,空格以及标点符号 $\texttt{-}$ , $\texttt{,}$ 和 $\texttt{.}$ 组成。
我想知道,每一个纸条上除去标点符号和空格有多少个字符,且有多少个单词(包括数字)。
输入格式
第一行一个整数 $n$ ,意义同上。
接下来 $n$ 行,每行一个字符串 $s_i$ ,表示第 $i$ 张纸条的一行字。
输出格式
共 $n$ 行,每行两个整数 $a_i$ , $b_i$ ,表示第 $i$ 张纸条上除去标点符号和空格的字符数量和单词数量。
说明/提示
**【数据范围】**
$\forall s_i$ ,长度 $\le100$ 且 $s_{i_1}\notin\{\texttt{ (space)},\texttt{,},\texttt{.},\texttt{-}\}$;
$\forall \text{当}s_{i_j}\in\{\texttt{,},\texttt{.},\texttt{-}\}\text{时},s_{i_{j+1}}=\texttt{ (space)},s_{i_{j-1}}\neq\texttt{ (space)}$;
$\forall \text{当}s_{i_j}=\texttt{ (space)}\text{时},s_{i_{j+1}}\neq\texttt{ (space)}$;
$\forall1\le n\le100$ 且 $n\in\mathbb{Z}$。
$\forall a\ge1$ 且 $a\in\mathbb{Z}$。
$\forall b\ge1$ 且 $b\in\mathbb{Z}$。
**【提示】**
1. 如样例一,`bu-guo` 视为一个单词。**即只有用空格分割的词会被视作一个单词。**
2. 在使用 `getline()` 函数时,请使用
```cpp
while (cin.get() != '\n'); // 读取直到遇到换行符
```
清除输入缓冲区中的换行符。