#include<stdio.h>
int stringLength(char *s);
void printString(char *s);
void noVowelString(char *s);
void stringAppend(char *s1,char *s2);
int process(char *r);
void stringCompare(char *s1,char *s2);
int main()
{
int t,c1,c2,a,i;
char input[10],string[15],str[30],*s,*s1,s2;
scanf("%d",&t);
for(c1=1;c1<=t;c1++)
{
scanf("%s",input);
a= process(&input[0]);
if( a == 1 || a == 2)
{ scanf("%s",string);
s= &string[0];
if(a==1) {printString(s);}
if(a==2) {noVowelString(s);}
}
if( a == 3 || a == 4)
{ scanf("%s",str);
scanf("%s",string);
s1 = &str[0]; s2 = &string[0];
if(a==3) {stringAppend(s1,s2);}
if(a==4);{stringCompare(s1,s2);}
}
}
return 0;
}
int stringLength(char s)
{
int n;
for(n=0;(s+n) != β\0β;n++) ;
return (n);
}
void printString(char s)
{
int n;
for(n=0;(s+n) != β\0β;n++)
printf("%c",(s+n));
}
void noVowelString(char s)
{
int l,n,t=0,m;
l = stringLength(s);
for(n=0;(s+n) != 0;n++)
{
if((s+n) == βaβ || *(s+n) == βeβ || *(s+n) == βiβ || *(s+n) == βoβ || *(s+n) == βuβ || *(s+n) == βAβ || *(s+n) == βEβ || *(s+n) == βIβ || *(s+n) == βOβ || (s+n) == βUβ)
{
for(m=n;(s+m+1) != 0;m++)
{
*(s+m) = *(s+m+1);
}
t += 1;
*(s+l-t) = β\0β;
n = n - 1;
}
}
printString(s);
}
void stringAppend(char *s1,char s2)
{
int l1,n;
l1 = stringLength(s1);
for(n=0;(s2+n) != 0;n++)
{
*(s1+l1+n) = *(s2+n);
}
printString(s1);
}
int process(char *r)
{
int a;
if(r == βpβ)
{ if((r+1) == βrβ && *(r+2) == βiβ && *(r+3) == βnβ && *(r+4) == βtβ )
a=1;
}
if(r == βnβ)
{ if((r+1) == βoβ && *(r+2) == βvβ && *(r+3) == βoβ && *(r+4) == βwβ && *(r+5) == βeβ && *(r+6) == βlβ)
a=2;
}
if(r == βaβ)
{ if((r+1) == βpβ && *(r+2) == βpβ && *(r+3) == βeβ && *(r+4) == βnβ && *(r+5) == βdβ)
a=3;
}
if(r == βcβ)
{ if((r+1) == βoβ && *(r+2) == βmβ && *(r+3) == βpβ && *(r+4) == βaβ && *(r+5) == βrβ && *(r+6) == βeβ)
a=4;
}
return (a);
}
void stringCompare(char *s1,char *s2)
{
int l1,l2,i;
l1=stringLength(s1);
l2=stringLength(s2);
if(l1 > l2) {printString(s1);}
if(l1 < l2) {printString(s2);}
if(l1 == l2)
{
for(i=0; *(s1+i) != 0;i++)
{
if( (int) *(s1+i) > (int) *(s2+i) ) {printString(s2);break;}
if( (int) *(s1+i) < (int) *(s2+i) ) {printString(s1);break;}
}
if( i == l1) {printString(s1);}
}
}
1 Like
if anyone is not able to see this code clearly pls browse this page:
Hi, your code isnβt giving runtime error now for the sample input you provided --> [Working code][1]
Just made some modification in the [void printString(char *s)] function.
[1]: http://ideone.com/Bw6Bfm
2 Likes
but i am not supposed to use strlen function in my code.
1 Like
It is a small mistake . I forgot to put * before (s+n). Btw thank you for help.
Mention not