Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #109629

Re: Printing like palindrome

Subject Re: Printing like palindrome
Newsgroups comp.lang.c
References <5911a0f4$0$294$14726298@news.sunsite.dk>
From bartc <bc@freeuk.com>
Message-ID <cDpQA.18290$EF.7869@fx42.am4> (permalink)
Organization virginmedia.com
Date 2017-05-09 21:28 +0100

Show all headers | View raw


On 09/05/2017 11:59, arnuld wrote:
> Programs works fine, I just wanted suggestions for improvement:
>
>
> /* GlobalEdx interview Question, Real Life Practicial Code

> void printPalindrome(char c) ;

If it's for an interview, then I wouldn't call it a palindrome, because 
it isn't.

A palindrome is a word or phrase (or sometimes number) which spells out 
the same thing when the character sequence is reversed (usually ignoring 
spacing, punctuation and capitalisation).

This just prints a letter sequence, then in reverse, avoiding 
duplicating the letter in the middle.

> int getFirstLetter(char* p, char* pc);
>
>
> int main(int argc, char* argv[]){
>   char c;
>   if(2 != argc) {

Ugly. And the idiom is mainly intended for == not !=.

>     printf("Please provide 1 argument\n");

"Please enter a letter A to Z"

>   }
>   else
>     {
>       if(!getFirstLetter(argv[1], &c)) printPalindrome(c);
>       else printf("You did not enter a character. Enter uppercase
> character \n");
>     }
>   return 0;
> }
>
> /* If you get more than letter. Just pick up the first letter
>  *
>  */
> int getFirstLetter(char* p, char* pc) {
>   char temp = *p;
>
>   /* What if user puts an int or double, here we handle that ? */
>   if( ((temp >= 'A') && (temp <= 'Z')) ) {
>     *pc = temp;
>     return 0;
>   }
>   else return 1;
>  }

The program seems to work, but you spend a disproportionate amount of 
code verifying the input, which is just a letter from A to Z. And it's 
not verifying it too well as anything is accepted not just a single 
letter. (It doesn't work for lower case either, but that is slightly 
trickier.)

(Also, if you run it on Linux, and enter * or ?, it'll use the name of 
the first matching file encountered. But you can't do much about that.)

-- 
bartc

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Printing like palindrome arnuld <sunrise@invalid.address> - 2017-05-09 10:59 +0000
  Re: Printing like palindrome Barry Schwarz <schwarzb@dqel.com> - 2017-05-09 04:26 -0700
    Re: Printing like palindrome Robert Wessel <robertwessel2@yahoo.com> - 2017-05-09 14:10 -0500
      Re: Printing like palindrome Keith Thompson <kst-u@mib.org> - 2017-05-09 12:33 -0700
        Re: Printing like palindrome Richard Heathfield <rjh@cpax.org.uk> - 2017-05-09 23:05 +0100
          Re: Printing like palindrome raltbos@xs4all.nl (Richard Bos) - 2017-05-10 10:25 +0000
            Re: Printing like palindrome Richard Heathfield <rjh@cpax.org.uk> - 2017-05-10 11:44 +0100
          Re: Printing like palindrome Keith Thompson <kst-u@mib.org> - 2017-05-10 09:48 -0700
            Re: Printing like palindrome Gareth Owen <gwowen@gmail.com> - 2017-05-10 18:59 +0100
        Re: Printing like palindrome arnuld <sunrise@invalid.address> - 2017-05-12 07:14 +0000
      Re: Printing like palindrome arnuld <sunrise@invalid.address> - 2017-05-12 07:44 +0000
    Re: Printing like palindrome arnuld <sunrise@invalid.address> - 2017-05-12 07:20 +0000
      Re: Printing like palindrome Keith Thompson <kst-u@mib.org> - 2017-05-12 08:49 -0700
        Re: Printing like palindrome arnuld <sunrise@invalid.address> - 2017-05-14 02:01 +0000
  Re: Printing like palindrome mark.bluemel@gmail.com - 2017-05-09 07:13 -0700
    Re: Printing like palindrome scott@slp53.sl.home (Scott Lurndal) - 2017-05-09 14:59 +0000
      Re: Printing like palindrome Keith Thompson <kst-u@mib.org> - 2017-05-09 08:27 -0700
      Re: Printing like palindrome Barry Schwarz <schwarzb@dqel.com> - 2017-05-09 10:40 -0700
  Re: Printing like palindrome scott@slp53.sl.home (Scott Lurndal) - 2017-05-09 14:38 +0000
    Re: Printing like palindrome Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-05-09 22:48 +0100
      Re: Printing like palindrome scott@slp53.sl.home (Scott Lurndal) - 2017-05-10 13:21 +0000
        Re: Printing like palindrome Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-05-10 15:45 +0100
        Re: Printing like palindrome Barry Schwarz <schwarzb@dqel.com> - 2017-05-10 10:26 -0700
  Re: Printing like palindrome bartc <bc@freeuk.com> - 2017-05-09 21:28 +0100
    Re: Printing like palindrome raltbos@xs4all.nl (Richard Bos) - 2017-05-10 10:27 +0000
    Re: Printing like palindrome Chad <cdalten@gmail.com> - 2017-05-10 10:39 -0700
  Re: Printing like palindrome bartc <bc@freeuk.com> - 2017-05-10 12:54 +0100
  Printing like palindrome asetofsymbols@gmail.com - 2017-05-12 02:32 -0700

csiph-web