الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج لمقارنة Strings فى ملفين

مغلق
بدأه أحمــــد في 22 أبريل 2007 · 4 رد · 612 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هذا كود بالسى لبرنامج يعمل مقارنة بين ملفين ويشوف اذا كان محتويات الملفين متطابقة ولا لأ .

لكن مدرى وش المشكلة :( ، على طول يقولى Different .

ياريت مساعدتى بلغة السى فقط .

#include <stdio.h>
 #include <conio.h>

 main()
 {
	   FILE *in1,*in2;
	   char path1[100],path2[100],s1[100],s2[100];

	   printf("Enter the first path: ");
	   gets(path1);
	   in1=fopen(path1,"r");	  
	   while(in1==NULL)
	   {
	   printf("\nError , The first path is invaild , Retry: ");
	   gets(path1);
	   in1=fopen(path1,"r");
	   }


	   printf("\nEnter the second path: ");
	   gets(path2);
	   in2=fopen(path2,"r");
	   while(in2==NULL)
	   {
	   printf("\nError , The second path is invaild , Retry: ");
	   gets(path2);
	   in2=fopen(path2,"r");   
	   }

	   fgets(s1,100,in1);
	   fgets(s2,100,in2);

	   if(s1==s2)
	   {
	   printf("\nIdentical");
	   }

	   else{
	   printf("\nDifferent");
	   }

	   fclose(in1);
	   fclose(in2);

	   getch();
	   return 0;
	   }
#2

اخوي هل وضعت ال linkeحق الملفين اللي سيقارنو في بداية البرنامج بعد ال#includeقبل الماين؟

جربها وبلغنا

#3

والله يا أخى مادرى وش تقصد .

أنا مدى اليوزر الحرية فى اختيار مسار الملفين اللى يبى يقارن بينهم ، كمان مسوى كونديشن فى حالة اسم المسار غلط .

المشكلة فى المقارنة ، فى ال if statement .

خليته ياخذ السترينج من الملف الأول والسترينج من الملف الثانى بهذا الأمر :

	   fgets(s1,100,in1);
	   fgets(s2,100,in2);

بعد سويت المقارنة بين السترينج الأول s1 والثانى s2 ، بحيث لو كانوا متساويين ، يقول Identical ، لو غير يبقى Different ، لكن مادرى ليش دايما يقول Different .

#4
اقتباس
اخوي هل وضعت ال linkeحق الملفين اللي سيقارنو في بداية البرنامج بعد ال#includeقبل الماين؟

جربها وبلغنا

يعني ايه بالـ linke ؟

الخطأ في سطر المقارنة

if (s1 == s2) blah blah

لا نقوم بمقارنة الـ pointers

اسبدله بـ

if (strcmp(s1, s2) == 0) blah blah

و يمكنك التعلم عن strcmp هنا

http://www.cplusplus.com/reference/clibrar...ing/strcmp.html

#5

الحمد لله اشتغلت ، الحين بقرأ عن ال strcmp .

جزاك الله خيرا ً .

هذا الموضوع مغلق.

مواضيع مشابهة