[ create a new paste ] login | about

Link: http://codepad.org/gK5qu2Od    [ raw code | output | fork ]

C, pasted on Mar 23:
#include <ctype.h>
#include <stdio.h> 
#include <string.h>
  
    char DammitImMad[] = 
        "Dammit I’m mad.\n"
        "Evil is a deed as I live.\n"
        "God, am I reviled? I rise, my bed on a sun, I melt.\n"
        "To be not one man emanating is sad. I piss.\n"
        "Alas, it is so late. Who stops to help?\n"
        "Man, it is hot. I’m in it. I tell.\n"
        "I am not a devil. I level \"Mad Dog\".\n"
        "Ah, say burning is, as a deified gulp,\n"
        "In my halo of a mired rum tin.\n"
        "I erase many men. Oh, to be man, a sin.\n"
        "Is evil in a clam? In a trap?\n"
        "No. It is open. On it I was stuck.\n"
        "Rats peed on hope. Elsewhere dips a web.\n"
        "Be still if I fill its ebb.\n"
        "Ew, a spider… eh?\n"
        "We sleep. Oh no!\n"
        "Deep, stark cuts saw it in one position.\n"
        "Part animal, can I live? Sin is a name.\n"
        "Both, one… my names are in it.\n"
        "Murder? I’m a fool.\n"
        "A hymn I plug, deified as a sign in ruby ash,\n"
        "A Goddam level I lived at.\n"
        "On mail let it in. I’m it.\n"
        "Oh, sit in ample hot spots. Oh wet!\n"
        "A loss it is alas (sip). I’d assign it a name.\n"
        "Name not one bottle minus an ode by me:\n"
        "\"Sir, I deliver. I’m a dog\"\n"
        "Evil is a deed as I live.\n"
        "Dammit I’m mad.\n"
        ;

    int ispalindrome( char *sentence ) {
      if( sentence && *sentence ) {
        char *dst = sentence ;
        char *src = dst ;

        /* in place overwrite copy of just the alpha chars as lowercase.
        */
        while( *src ) {
          if( isalpha( *src ) )
            *dst++ = tolower( *src ) ;
          ++src ;
          }
    
        /* look for symmetry
        */
        src = sentence ;
        --dst ;
        while( src < dst ) {
          if( *src != *dst )
            return 0 ; 
          ++src ;
          --dst ;
          }
        }
      /* return TRUE for 
      **   symmetric strings
      **   NULL
      **   ""
      */
      return 1 ;
      }  
  
void test( char *string )
  {
  int ret ;
  printf("Sentence: >>%s<<\n", string ? string : "--NULL--") ;
  ret = ispalindrome( string ) ;
  printf(" becomes: >>%s<<\n", string ? string : "--NULL--") ;
  printf("      is: %s palindrome.\n\n", ret ? "A" : "NOT A" ) ;
  }
  
char *strdup_( char *s )
  {
  if( s ) {
    int   len = strlen(s) + 1 ;
    char *dup = malloc( len ) ;
    if( dup )
      return memcpy( dup, s, len ) ;
    }
  return NULL ;  
  }

int main( int argc, char **argv )
  {
  test( strdup_( 0 ) ) ;
  test( strdup_( "" ) ) ;
  test( strdup_( "Boris#Yeltsin" ) ) ;
  test( strdup_( "A Man, A Plan, A Canal - Panama!" ) );
  test( DammitImMad );

  return 1 ;
  }


Output:
Sentence: >>--NULL--<<
 becomes: >>--NULL--<<
      is: A palindrome.

Sentence: >><<
 becomes: >><<
      is: A palindrome.

Sentence: >>Boris#Yeltsin<<
 becomes: >>borisyeltsinn<<
      is: NOT A palindrome.

Sentence: >>A Man, A Plan, A Canal - Panama!<<
 becomes: >>amanaplanacanalpanamal - Panama!<<
      is: A palindrome.

Sentence: >>Dammit I’m mad.
Evil is a deed as I live.
God, am I reviled? I rise, my bed on a sun, I melt.
To be not one man emanating is sad. I piss.
Alas, it is so late. Who stops to help?
Man, it is hot. I’m in it. I tell.
I am not a devil. I level "Mad Dog".
Ah, say burning is, as a deified gulp,
In my halo of a mired rum tin.
I erase many men. Oh, to be man, a sin.
Is evil in a clam? In a trap?
No. It is open. On it I was stuck.
Rats peed on hope. Elsewhere dips a web.
Be still if I fill its ebb.
Ew, a spider… eh?
We sleep. Oh no!
Deep, stark cuts saw it in one position.
Part animal, can I live? Sin is a name.
Both, one… my names are in it.
Murder? I’m a fool.
A hymn I plug, deified as a sign in ruby ash,
A Goddam level I lived at.
On mail let it in. I’m it.
Oh, sit in ample hot spots. Oh wet!
A loss it is alas (sip). I’d assign it a name.
Name not one bottle minus an ode by me:
"Sir, I deliver. I’m a dog"
Evil is a deed as I live.
Dammit I’m mad.
<<
 becomes: >>dammitimmadevilisadeedasilivegodamireviledirisemybedonasunimelttobenotonemanemanatingissadipissalasitissolatewhostopstohelpmanitishotiminititelliamnotadevililevelmaddogahsayburningisasadeifiedgulpinmyhaloofamiredrumtinierasemanymenohtobemanasinisevilinaclaminatrapnoitisopenonitiwasstuckratspeedonhopeelsewheredipsawebbestillififillitsebbewaspiderehwesleepohnodeepstarkcutssawitinonepositionpartanimalcanilivesinisanamebothonemynamesareinitmurderimafoolahymniplugdeifiedasasigninrubyashagoddamlevelilivedatonmailletitinimitohsitinamplehotspotsohwetalossitisalassipidassignitanamenamenotonebottleminusanodebymesirideliverimadogevilisadeedasilivedammitimmad? I’m a fool.
A hymn I plug, deified as a sign in ruby ash,
A Goddam level I lived at.
On mail let it in. I’m it.
Oh, sit in ample hot spots. Oh wet!
A loss it is alas (sip). I’d assign it a name.
Name not one bottle minus an ode by me:
"Sir, I deliver. I’m a dog"
Evil is a deed as I live.
Dammit I’m mad.
<<
      is: A palindrome.


Create a new paste based on this one


Comments: