付佬是软件学院的红太阳,他说的每一句话都被奉为“太阳箴言”。
小明当然也不想错过学习付佬先进姿势的机会,可惜他今天没有水群,只好去翻999+的聊天记录了(哭)。
已知付佬说的每一句话总会在最外层套一对小括号,如:
(我给你三秒钟重新组织你的语言)
(女装还行)
付佬做事十分严谨,所以所有的只有半边括号的话一定不是付佬说的。
给你一段聊天记录,你能判断有多少条记录可能是“太阳箴言吗”?请顺便输出他们。
本题所有数据只含常用半角字符,不会出现全角字符以及除英语外的语言字符,更不会以空格结束字符串
多组数据输入。
对于每组数据,第一行是聊天记录的行数n (n <= 10)
接下来n行,每行都是一个字符串,长度不超过50
对于每组数据,第一行输出“太阳箴言”的数量,接下来按时间从前到后的顺序逐行输出每一条可能是“太阳箴言”的记录。最后输出一行“----------”。
6
((emmmm...))
<wrong answer>
(cry
hhhhhhh)
(hai xing)
praise the sun!
1
lai shuai jiao
2
((emmmm...))
(hai xing)
----------
0
----------
本题做法十分多样。
如果要保存字符串,可以使用char数组,也可以使用C++封装的string类型
C:
<string.h>头文件提供了计算char数组长度的函数strlen(char*)
C++:
<string>头文件提供了求string类对象长度的函数length()
此外也可以通过<cstring>头文件使用strlen(char*)函数
平时使用的std::cin会在遇到空格和换行符的时候停止读入数据,scanf("%s")也是如此。
scanf("%c")可以接受空格和换行符,如果在之前加上一个空格,即scanf(" %c"),则会忽略空格和换行符。
C++ 提供了 getline()函数,可以将包括空格在内的数据一并存入string对象,直到遇到换行符才会停止。
C也有gets()函数来实现上述功能