GeeksforGeeks » C/C++ Programming Questions

string reverse

(6 posts)
  1. Nagarajan
    guest
    Posted 9 months ago #

    c program for sting statement reversing order to display.

    ex.
    input:
    have a nice day.
    output:
    day nice a have.

  2. CaesiumX
    Member
    Posted 8 months ago #

  3. MJ
    guest
    Posted 8 months ago #

    #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);
    }
    }

  4. Rahul
    guest
    Posted 8 months ago #

    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]*/
    }
    }

  5. Manohar Singh
    guest
    Posted 8 months ago #

    #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();
    }

  6. aks
    Member
    Posted 4 months ago #

    #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.

RSS feed for this topic