تابعی بازگشتی بنویسید که رشته را از ورودی بخواند ومشخص کند رشته مذکور palindrome هست یا نه؟

nazanin.padekan

عضو جدید
سلام کسی اینو بلده.....................


-تابعی بازگشتی بنویسید که رشته را از ورودی بخواند ومشخص کند رشته مذکور palindrome هست یا نه؟رشته palindrome رشته ای است که از چپ به راست به یک صورت خوانده شودمانند radar.

راهنمایی :پیش الگو ی تابع را به صورت زیر در نظر بگیرید:
int palindrome(char s[],intfirst,int last);

که first اندیس ابتدای رشته و last اندیس انتهای رشته را مشخص می کند و هر بار ابتدای رشته را با انتهای رشته مقایسه کنید.
 

iaidin

عضو جدید
سلام کسی اینو بلده.....................


-تابعی بازگشتی بنویسید که رشته را از ورودی بخواند ومشخص کند رشته مذکور palindrome هست یا نه؟رشته palindrome رشته ای است که از چپ به راست به یک صورت خوانده شودمانند radar.

راهنمایی :پیش الگو ی تابع را به صورت زیر در نظر بگیرید:
int palindrome(char s[],intfirst,int last);

که first اندیس ابتدای رشته و last اندیس انتهای رشته را مشخص می کند و هر بار ابتدای رشته را با انتهای رشته مقایسه کنید.

کد:
سورس اول
#include <stdio.h>
#include <string.h>

int isPalindrome (char *str, int length)
   {
   int i;
   if (length<1) return 1; // no more chars to compare, its palindrome

// you can remove the next 2 lines but
// they display what is actually being done

   for (i=0; i<length; i++) printf ("%c", str[i]);
   printf (" has length %d.\n", length);

   if (str[0] == str[length-1])                         // end chars same?
      return isPalindrome (str+1, length-2);    // check for next
   else return 0;                                         // not a plindrome
   }

void main (void)
   {
   int result;
   char str[256];
   printf ("Please type a string: ");
   gets (str);
   result = isPalindrome (str, strlen (str));
   if (result==1) printf ("Its a palindrome string.");
   else printf ("Not a palindrome");
   }

سورس دوم
---------------------------
#include <stdio.h>
#include <string.h>

int isPalindrome (char *str)
   {
   int i;
   static int length = strlen (str);
   if (length<1) return 1;
   if (str[0] == str[length-1])
      {
      length -= 2;
      return isPalindrome (str+1);
      }
   else return 0;
   }


void main (void)
   {
   int result;
   char str[256];
   printf ("Please type a string: ");
   gets (str);
   result = isPalindrome (str);
   if (result==1) printf ("Its a palindrome string.");
   else printf ("Not a palindrome");
   }
reference: http://www.netalive.org
 
بالا