Friday, July 24, 2015

Palindrome String Check in C++ without using string.h

Palindrome check for a given string is very popular starting exercise for new programmers. It has got many implementations in Java and C++. Most of the implementations use existing String class in Java or string.h header in C++.

Following string palindrome check function in c++ without using string.h works with the constraints :

- strings that do not contain any space
- strings just contain English alphabet characters
- strings with more than 3 characters


#include <stdio.h>

int isPalindrome( const char* arr )
{
    int stringLength = 0;
    int index = 0;
    while(arr[index]!='\0')
    {
        ++stringLength;
        ++index;
    }

    if( stringLength >= 0 && stringLength <=2 )
        return 0;

    for(int i = 0; i<stringLength/2; i++)
    {
        if(arr[i] != arr[stringLength-1-i])
            return 0;
    }

    return 1;
}

int main()
{
    const char* stringToCheck1 = "aba";
    int res = isPalindrome(stringToCheck1);
    if(res)
        printf("%s is palindrome\n", stringToCheck1);
    else
        printf("%s is not palindrome\n",stringToCheck1);

    const char* stringToCheck2 = "abba";
    res = isPalindrome(stringToCheck2);
    if(res)
        printf("%s is palindrome\n",stringToCheck2);
    else
        printf("%s is not palindrome\n",stringToCheck2);

    const char* stringToCheck3 = "abccccba";
    res = isPalindrome(stringToCheck3);
    if(res)
        printf("%s is palindrome\n",stringToCheck3);
    else
        printf("%s is not palindrome\n",stringToCheck3);

    const char* stringToCheck4 = "abcc111211ccba";
    res = isPalindrome(stringToCheck4);
    if(res)
        printf("%s is palindrome\n",stringToCheck4);
    else
        printf("%s is not palindrome\n",stringToCheck4);

    const char* stringToCheck5 = "";
    res = isPalindrome(stringToCheck5);
    if(res)
        printf("%s is palindrome\n",stringToCheck5);
    else
        printf("%s is not palindrome\n",stringToCheck5);

    return 0;
}

After executing above main function following terminal output is produced.


No comments:

Post a Comment