[Offer收割]编程练习赛13 1501 风格不统一如何写程序

描述
小Hi写程序时习惯用蛇形命名法(snake case)为变量起名字,即用下划线将单词连接起来,例如:file_nameline_number

小Ho写程序时习惯用驼峰命名法(camel case)为变量起名字,即第一个单词首字母小写,后面单词首字母大写,例如:fileName、lineNumber。

为了风格统一,他们决定邀请公正的第三方来编写一个转换程序,可以把一种命名法的变量名转换为另一种命名法的变量名。

你能帮助他们解决这一难题吗?

输入
第一行包含一个整数N,表示测试数据的组数。(1 <= N <= 10)

以下N行每行包含一个以某种命名法命名的变量名,长度不超过100。

输入保证组成变量名的单词只包含小写字母。

输出
对于每组数据,输出使用另一种命名法时对应的变量名。

样例输入

2  
file_name  
lineNumber 

样例输出

fileName  
line_number

简单水题

#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    int n;
    cin >> n;
    string str, ans;
    for(int i=0; i<n; ++ i)
    {
        cin >> str;
        ans.clear();
        for(int j=0; j<str.size(); ++ j)
        {
            if(str[j] >= 'A' && str[j] <= 'Z')
                ans += '_', ans += str[j] - 'A' + 'a';
            else if(str[j] == '_')
                ans += str[++j] - 'a' + 'A';
            else
                ans += str[j];
        }
        cout << ans << endl;
    }
    return 0;
}

posted @ 2017-04-09 15:34  aiterator  阅读(288)  评论(0编辑  收藏  举报