/* Function to reverse str[] from start to end*/
void rverese(char str[], int start, int end)
{
char temp;
while(start < end)
{
/* swap str[start] and str[end]*/
if(str[start]!= str[end])
{
str[start] ^= str[end];
str[end] ^= str[start];
str[start] ^= str[end];
}
start++;
end--;
}
}
int main()
{
char str[] = "CrackingTheCode";
printf("Original string is %s\n", str);
rverese(str, 0, 12);
printf("Reversed string is %s\n", str);
getchar();
return 0;
}
TC O(n)
SC O(1)
Run Here https://ideone.com/j673O
2nd Method
#include
int main()
{
char ip[10];
char op[10];
char *p,*q;
scanf("%s",ip);
p=ip;
q=op;
//point p to last character of i/p string
while(*(++p)!='\0');
p--;
//now p piinte to last & s points to start of i/p string so copy from p to q
//and now q will contain the reverse of original string
while(p!=ip)
{
*(q++)=*(p--);
}
*(q++)=*(p--); // first character of string
*q='\0';
printf("%s",op);
return 0;
}
TC O(N)
SC O(1)
Run Here https://ideone.com/MkDDs
No comments :
Post a Comment