Hi all,
I am trying out with this Java vs C++ for a long time and i am getting WA. I have already checked out all related topics in forum and my program seems to give correct output. Can anyone Please help me with this?
#include<iostream>
using namespace std;
bool error;
bool c,java;
void checkc(char *a)
{
int i,n=strlen(a);
if(a[0]=='_' || a[n-1]=='_')
{
error=true;
return;
}
for(i=0;i<n;i++)
{
if(isupper(a[i])!=0)
{
c=false;
return;
}
if(a[i]=='_' && a[i+1]=='_')
{
error=true;
return;
}
}
c=true;
}
char* convertc(char *a)
{
char *b=new char[110];
char c;
int i=0,j=0,n=strlen(a);
bool d=false;
for(i=0;i<n;i++)
{
c=a[i];
if(c=='_')
{
d=true;
continue;
}
if(d==true)
{
b[j++]=toupper(c);
d=false;
continue;
}
b[j++]=c;
} b[j]='\0';
return b;
}
void checkjava(char *a)
{
int i,n=strlen(a);
int count=0;
bool b=false;
for(i=0;i<n;i++)
if(isupper(a[i])!=0)
count++;
else
if(a[i]=='_')
{
error=true;
return;
}
if(count==n)
{
error=true;
return;
}
java=true;
}
bool tmperror(char* a)
{
int i,err=0;
if(!isupper(a[0]))
return false;
for(i=1;i<strlen(a);i++)
if(isupper(a[i]))
return false;
return true;
}
char* convertjava(char *a)
{
int i,n=strlen(a),j=0;
char *b=new char[110];
char c;
for(i=0;i<n;i++)
{
c=a[i];
if(isupper(c)!=0 && i!=0)
{
b[j++]='_';
b[j++]=tolower(c);
//i++;
continue;
}
if(isupper(c)!=0 && i==0)
{
b[j++]=tolower(c);
continue;
}
b[j++]=c;
}
b[j]='\0';
return b;
}
int main()
{
char *a=new char[110];
char *b=new char[110];
memset(a,' ',110);
while(cin.getline(a,110))
{
error=c=java=false;
if(tmperror(a))
{
cout<<"Error!"<<endl;
continue;
}
checkc(a);
if(c!=true && error!=true)
checkjava(a);
if(c==true)
{
b=convertc(a);
cout<<b<<endl;
}
else
if(java==true)
{
b=convertjava(a);
cout<<b<<endl;
}
else
if(error==true)
{
cout<<"Error!"<<endl;
b=false;
continue;
}
memset(a,' ',110);
}
exit(0);
return 0;
}
Thanks in advance