#4365. C++ L17 命名法转换

C++ L17 命名法转换

C++ L17 命名法转换(30分)

题目名称:命名法转换

题目描述:

帕斯卡命名法指当标识符是由两个或两个以上单词连在一起构成时,每个单词只有首字母大写,其它字母都是小写。

例如:GateWidth、RoadLength、UserName、TotalCost、UserBalance

下划线命名法是将多个单词使用下划线来连接(单词都为小写字母)。

例如:

gate_width、road_length、user_name、total_cost、user_balance

现在给定若干个符合帕斯卡命名法的标识符,请你按照以下规则编写程序将它们转换成符合下划线命名法的名称。

规则:

  1. 在帕斯卡命名标识符中所有大写字母前加一个下划线(除首字母);
  2. 再将帕斯卡命名标识符中所有大写字母转为小写字母。

例如:GateWidth转换为gate_width,RoadLength 转换为road_length,UserName转换为user_name,TotalCost转换为total_cost,UserBalance转换为user_balance

输入:

一个字符串,包含若干个标识符,标识符之间以一个空格隔开,总长度不超过500。

题目数据保证符合:

  1. 标识符仅包含英文字母
  2. 组成标识符的单词数量不小于2,单词长度介于2~10之间
  3. 标识符数量不超过50

输出:

一个字符串,表示将所有给定的标识符转换为下划线命名法的结果。相邻两个标识符之间以一个空格分隔。

输入样例:

GateWidth RoadLength

输出样例:

gate_width road_length

Limitation

1s, 1024KiB for each test case.