Jump to content

User:Atlant/String symmetry.c

From Wikipedia, the free encyclopedia
#include <stdio.h>
#include <string.h>


/* Forward routines
 *
 */

int  is_symmetrical( char string[] );
int  main( int argc, char * argv[], char * envp[] );
void try_one( char string[] );


int main( int argc, char * argv[], char * envp[] )
  {

    try_one( "" );
    try_one( "A" );
    try_one( "AB" );
    try_one( "AA" );
    try_one( "ABC" );
    try_one( "ABA" );
    try_one( "ABCD" );
    try_one( "ABBA" );
    try_one( "ABBC" );
    try_one( "ABCA" );

    return( 0 );

  }


void try_one( char string[] )
  {

    int status;


    status = is_symmetrical( string );
    if (status)
      {
        printf( "\"%s\" is symmetrical\n", string );
      }
    else
      {
        printf( "\"%s\" isn't symmetrical\n", string );
      }

  }


int is_symmetrical( char string[] )
  {

    int i;
    int j;


    i = 0;                              // Position at first byte
    j = strlen(string)-1;               // Position at last byte

    while (i<j)                         // Until indices cross or coincide...
      {
        if (string[i] != string[j])
          return( 0 );
        i++;
        j--;
      }

    return( 1 );

  }