私はこのspoj質問に答えるた:私はC++で提出をコード化 http://www.spoj.pl/problems/JAVAC/SPOJ質問 - ここで間違っていますか?
を。私はそれを下に貼り付けています。提出は一貫して間違った答えを与える。私はそれが失敗するテストケースを見つけることができません。誰か助けてくれますか?
ありがとうございました。
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
char *ans;
bool iscapital(char c)
{
if(c >='A' && c <='Z')
return true;
else
return false;
}
string translate(string current)
{
ans = new char[2*current.length() + 1];
int jflag = 0, cflag = 0,j = 0, i = 0;
if(iscapital(current[0]))
{
return "Error!";
}
while(i < current.length())
{
if(current[i] !='_')
{
if(!(current[i] >= 'A' && current[i] <= 'Z'))
{
ans[j] = current[i];
i++;
j++;
}
}
if(current[i] == '_')
{
if(jflag == 1)
return "Error!";
cflag = 1;
i++;
if(i < current.length())
{
//convert to capital
if(iscapital(current[i]))
return "Error!";
ans[j] = (char)((int)current[i] - 32);
i++;
j++;
}
}
if(iscapital(current[i]))
{
if(cflag == 1)
return "Error!";
jflag = 1;
ans[j] = '_';
j++;
ans[j] = (char)((int)current[i] + 32);
j++;
i++;
}
}
ans[j] = '\0';
string ret = ans;
return ret;
}
int main()
{
string current;
while(cin>>current)
{
cout<<translate(current)<<endl;
}
return 0;
}
私は通常、そのような詳細で問題を解決する方法を人々に伝えませんが、この問題の説明は実際には非常に曖昧です。がんばろう! –