【牛客網】ラクダの命名法
1827 ワード
タイトルの説明
C/C++からJavaに移行するプログラマーは、最初は変数のネーミング方式の変更に最も慣れていませんでした.C言語スタイルは下線で複数の単語を区切ります.例えば「hello_world」です.Javaはラクダ命名法というルールを採用しています.最初の単語を除いて、すべての単語の頭文字は大文字で、例えば「helloWorld」です.かわいそうなプログラマーたちに変数名を自動的に変換してください.
説明の入力:複数のデータのセットを入力します.各データのセットには、C言語スタイルの変数名が含まれています.各変数名の長さは100を超えない.
出力記述:各データセットに対応し、変数名に対応するラクダ命名法を出力します.
例
hello_を入力world nice_to_meet_helloWorld niceToMeetYou出力
問題を解く構想.
構想1は元の列を遍歴し、アルファベット文字が直接新しい列に移動し、下線にぶつかったら次の文字を大文字に変更し、下線は新しい列に移動せずに後ろを遍歴し続ける.すべてを移動するまで、新しい列を返します.
構想2は新しい列を定義し、元の列の中で
完全なコード
原題リンク
https://www.nowcoder.com/questionTerminal/aed1c7bbc2604e7c9661a2348b0541b8
ブロガーに注目してね
C/C++からJavaに移行するプログラマーは、最初は変数のネーミング方式の変更に最も慣れていませんでした.C言語スタイルは下線で複数の単語を区切ります.例えば「hello_world」です.Javaはラクダ命名法というルールを採用しています.最初の単語を除いて、すべての単語の頭文字は大文字で、例えば「helloWorld」です.かわいそうなプログラマーたちに変数名を自動的に変換してください.
説明の入力:複数のデータのセットを入力します.各データのセットには、C言語スタイルの変数名が含まれています.各変数名の長さは100を超えない.
出力記述:各データセットに対応し、変数名に対応するラクダ命名法を出力します.
例
hello_を入力world nice_to_meet_helloWorld niceToMeetYou出力
問題を解く構想.
構想1は元の列を遍歴し、アルファベット文字が直接新しい列に移動し、下線にぶつかったら次の文字を大文字に変更し、下線は新しい列に移動せずに後ろを遍歴し続ける.すべてを移動するまで、新しい列を返します.
string CtoJ(string s) //C Java
{
string s1 = ""; //
for (int i = 0; i < s.size(); i++) //
{
if (s[i] == '_') // ,
s[i+1] -= 32;
else //
s1.push_back(s[i]);
}
return s1; //
}
構想2は新しい列を定義し、元の列の中で
find()
関数で下線を見つけ、下線の前半部分を直接新しい列に移動し、その後の列の中で下線を探して前半部分に移動し、移動が終わるまで、新しい列に戻る.string CtoJ(string s) //C Java
{
string s1="";
int i = 0;
while (i < s.size())
{
int pos = s.find('_', i); //
if (pos
完全なコード
#include
#include
using namespace std;
string CtoJ(string s) //C Java
{
string s1 = ""; //
for (int i = 0; i < s.size(); i++) //
{
if (s[i] == '_') // ,
s[i+1] -= 32;
else //
s1.push_back(s[i]);
}
return s1; //
}
int main()
{
string s;
while (cin >> s)
cout << CtoJ(s) << endl;
return 0;
}
原題リンク
https://www.nowcoder.com/questionTerminal/aed1c7bbc2604e7c9661a2348b0541b8
ブロガーに注目してね