GeeksforGeeks » C/C++ Programming Questions
string reverse
(6 posts)-
c program for sting statement reversing order to display.
ex.
input:
have a nice day.
output:
day nice a have. -
#include<stdio.h>
#include<string.h>
void reverse (int index, char *str ) ;
int i=0,l;
int main (void)
{
char name[100];
printf ("Enter a mutli-word string: ") ;
gets(name);
l=strlen(name);
reverse( l, name ) ;
getch();
}void reverse (int index, char *str )
{
if (--index < 0 )
return ;
else
{
if(*(str + index)==' ' || index ==0)
{ i=index+1;
if(*(str + index)!=' ') // for last char.
i--;
while(*(str + i)!=' ' && i!=l)
{
putchar(*(str + i));
i++;
}
printf(" ");
}
reverse (index, str);
}
} -
void ReverseString(char *s)
{
int i, j;
for(j=0;*(s+j) != '';j++); /*Calculating length of the string*/revrse(s, j);
for(i=0, j=0; 1 ; )
{
if(*(s+i) == ' ' || *(s+i) == '')
{
reverse(s+i, i-j);
j = i+1;
}if(*(s+i) == '')
break;
}
}void reverse(char *s, int len)
{
int i, j;
for(i=0; j=len 1; i<len; i++, j--)
{
s[i] ^= s[j] ^= s[i] ^= s[j]; /*Swap s[i] and s[j]*/
}
} -
#include<stdio.h>
#include<string.h>
int main()
{
char s[100],str[100][100];
int i,l,n=0,l1=0,tag=0;
gets(s);
l=strlen(s);
if(s[l-1]=='.')tag=1;
for(i=0;i<l-tag;i++)
{
if(s[i]==' ')
{
n++;
l1=0;
}
else
{
str[n][l1++]=s[i];
}
}
for( i=n;i>=0;i--)
{
printf("%s",str[i]);
if(i)printf(" ");
}
if(tag)printf(".");
getchar();
} -
#include<stdio.h> void swap(char *a, char *b) { *a = *a + *b; *b = *a - *b; *a = *a - *b; } void reverse(char *str) { char *start = str; int count = 0, lc = 0; while(*str !='') { str++; count++; } str--; while(lc < count/2) { swap(start,str); start++; str--; lc++; } } int main() { char str[]="strings"; reverse(str); printf("%s",str); getchar(); return 0; }
Reply
You must log in to post.