مقایسه دو رشته بدون استفاده از strcmp

dunker

New Member
سلام:)
دوستان کسی میتونه به من درمورد این سوال کمک کنه:

برنامه ای که دو رشته را از ورودی خوانده آنها را بدون استفاده از تابع strcmp مقایسه کند درصورت برابر بودن دورشته yes و درغیر اینصورت no چاپ شود.

ممنون:rose:
 

the_king

مدیرکل انجمن
سلام:)
دوستان کسی میتونه به من درمورد این سوال کمک کنه:

برنامه ای که دو رشته را از ورودی خوانده آنها را بدون استفاده از تابع strcmp مقایسه کند درصورت برابر بودن دورشته yes و درغیر اینصورت no چاپ شود.

ممنون:rose:

تابع ()CompareString دو رشته را مقایسه کرده و اگر اولی از دومی بزرگتر بود 1 و اگر دومی بزرگتر بود 1- و اگر
برابر بودند مقدار 0 را برمی گرداند. در برنامه اصلی مقدار بازگشتی این تابع را با 0 مقایسه می کنیم تا
بر اساس برابر بودن ایندو رشته، پیغام yes یا no چاپ شود :

کد:
#include <stdio.h>
#include <conio.h>

int [B]CompareString[/B](char* str1, char* str2)
{
   int i;
   for (i=0;str1[i] || str2[i];i++)
      if (str1[i] > str2[i])
         return 1;
      else if (str1[i] < str2[i])
         return -1;
   return 0;
}

int main()
{
   char str1[100], str2[100];
   clrscr();
   printf ("Please enter string #1 : ");
   gets(str1);
   printf ("Please enter string #2 : ");
   gets(str2);
   if ([B]CompareString[/B](str1, str2) == 0)
	   printf ("yes");
   else
	   printf ("no");
   getch();
   return 0;
}

در ضمن یک نگاهی به این گفتگو بندازید بد نیست :

مقایسه دو رشته با استفاده از اشاره گر در سی پلاس
 

the_king

مدیرکل انجمن
منظورم بدون استفاده از هر نوع تابع و اشاره گریه:sad:

یک نکته عرض کنم، رشته ها، آرایه ها، شیء ها و هر نوع داده ترکیبی (struct) اشاره گر دارند، در واقع نام
هر کدام از این آرایه ها و رشته ها و ... خودش یک اشاره گر است. حتی اگر بصورت واضح از آن اسمی برده نشود.
تصور نکنید فرضا اگر در برنامه ای استفاده از اشاره گر هایی مثل *char استفاده نشد، پس اشاره گری وجود ندارد،
هر جا که از یک آرایه یا رشته استفاده کردید، اشاره گر بکار برده اید.

کد:
#include <stdio.h>
#include <conio.h>

int main()
{
   char str1[100], str2[100];
   int i;
   clrscr();
   printf ("Please enter string #1 : ");
   gets(str1);
   printf ("Please enter string #2 : ");
   gets(str2);
   for (i = 0; str1[i] || str2[i]; i++)
      if (str1[i] != str2[i])
	  {
         printf ("no");
		 i = -1;
		 break;
	  }
   if (i >= 0)
      printf ("yes");
   getch();
   return 0;
}
 

جدیدترین ارسال ها

بالا