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

ماهي الدالة التي تقارن متغيرن من نوع String

مغلق
بدأه M3az في 31 يوليو 2004 · 6 رد · 677 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هل هي الدالة strcmp()

مع الملاحظة اني جربتها ولكن مازبتط باستخدام المعالج Visual c++

#2

هي فعلا

الدالة

lstrcmp

أو الماكرو

strcmp

يقارن بين نص ونص أو مصفوفة حروف ومصفوفة أخرى

وإذا كانا متساويين مئة بالمئة ترجع 0

أما إذا أردت مقارنة كلمة في جملة

تستخدم الدالة

strstr

وتوجد دوال كثير للمقارنة مع الشروط

مثل الدالة

strcmpi

وغيرها

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#3

jaas

اشكرك جزيل الشكر على هذا الرد السريع والرائع

لكن اخي جربتها بالمعالج visual c++ ولم تنفع ؟

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

void main()

{

	char pass[10];
	do{
  
	printf("Enter The passWord");
	scanf("%s",pass);
}while(strcmp(pass,"god")!=0);



}

اخي انا مبتدأ وصراحة لا انا بجامعة ولا مفروض علي هذا الشي

لكن حبي برمجة والفضول دعاني للتعلم

الكود الاعلى ماهو الخطأ فيه ...؟؟

والف شكر الك كمان مرة

#4

والله بداية مشجعة من مبتديء وطريقك للإحتراف

ولكن خذ هذي النصائح لأنها ستفيدك كثيييير

خلينا من طريقة كتابتك للكود أولا

أنت عرفت

char pass[10]

وهذا كما تعرف مصفوفة من 10 حروف صح

وقارنتها بكلمة

god

إلي هي 3 حروف ما لاحظت شيء

في هنا شيء عندما تعرف المصفوفة فإن المترجم يحجز موقع في الذاكرة

هذا الموقع لا يساوي الصفر دائما

بمعنى بمجرد كتابة

char pass[10]

فإنها تساوي مثلا

"ةوءيس44545ب4"

وبعد ما تضيف لها أي نص مثلا

god

تصير تساوي

god4dae54567

فدائما عندما تريد تعريف مصفوفة لتستخدمها في المقارنة طبق هذا المثال

char pass[10];
ZeroMemory(pass,10)

وفي شيء ثاني

الدورات

دائما لا تستخدم أي دالة للمستخدم داخل دورة في مثالك

printf

وفي شيء بعد إنت كتبت برنامج كونسل يعني واجهة الدوس

الإدخال لبرامج الدوس تكون عن طريق الدالة الرئيسية

main

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

#5

الخطاء في الكود على ما اعتقد انك نسيت تضمين ملف الهدر الخاص بالسلاسل

النصية (string)

وعليك كتابة

#include <stdio.h>
#include <conio.h>
#include<string.h>//نسيت كتابتها

void main()

{

char pass[10];
do{

printf("Enter The passWord");
scanf("%s",pass);
}while(strcmp(pass,"god")!=0);



}

عموما انا ما جربت البرنامج لكن اعتقد ان المشكلة كانت في النقطة هذي والله اعلم[/B]

#6

اخي jaas

اسعدني ردك واطرائك وان شاء الله كل الملاحظات الي تفضلت بذكرها راح تكون حلقة بأذني

اقتباس
في شيء ثاني

الدورات

دائما لا تستخدم أي دالة للمستخدم داخل دورة في مثالك

printf

انت تقول لا تستخدم الدالة printf فماذا استخدم اذا كنت اريد من المستخدم معلومة هو الي يعطيها

هل استخدم الدالة gets ?

ويعطيك الف عافية لكن المشكلة كما تفضل الاخ a_g9999

كنت ناسي احط #include<string.h

مشكور اخوي a_g9999

وتعبتكم معاي بأسألتي

تم تعديل هذه المشاركة بواسطة M3az في 31 يوليو 2004 في 13:36

#7

مرحبا

قصدي الا تضيف دوال الإضهار للمستخدم داخل دورة أو حلقة

لأنة قد يحدث خطأ في الدورة ويستمر البرنامج في طباعة الجملة مئات المرات

وهذا غير مستحسن

المهم

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

فمثلا

هذا مثال لبرنامجك

#include <stdio.h>
#include <string.h>

int main(void)
{
char pass[10];

start:
printf("Enter password : ");
scanf("%10s",pass);

if(strcmp(pass,"god")!=0)
{
printf("Error in password\n");
goto start;
}

printf("thank you (start the main program..)\n");
printf("......................\n");

return 0;
}

ولكن المثال السابق قد تكون فية بعض الأخطاء

فدائما عندما تحاول كتابة برنامج حط في رأسك كل الإحتمالات المتوقعة والغير متوقعة

في كل ألأمثلة حددنا كلمة السر بعشرة أحرف ماذا لو كتب المستخدم مئة حرف

أو ألف حرف أو أي إحتمال آخر

هذا الكود عملي أكثر

#include <stdio.h>
#include <string.h>

int main(void)
{
char* pass=NULL;
char ch;
int ii;

start:
ii=0;
printf("Enter password : ");

do{
ch=getchar();
ii++;
}while(ch!='\n');

pass=new char[ii];
memset(pass,0,ii);
memcpy(pass,stdin->_base,ii-1);

if(strcmp(pass,"god")){
printf("Error in password\n");
delete[] pass;
goto start;
}

printf("thank you (start the main program...)\n");
printf("......................\n");
delete[] pass;
return 0;
}

ولو راجعت فإنك تستطيع تطويرة أكثر

لانة لا يعتبر نهائي

وشكرا

http://www.jaascois.com

*************************************************

مجموعة مواضيع - إحتراف البرمجة -

ّ~~~~~~~~~~~~~~~~~~~~~~

البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة

/index.php?showtopic=45002

آخر المواضيع :

+- تحليل جرائم الكمبيوتر -+

أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات

ثغرة SMS لأجهزة الجوال Siemens 3568i !

أخطاء وثغرات البرامج العربية !!!

سلسلة مواضيع - أمن وحماية مواقع الويب -

E البرمجة المتقدمة X للملفات التنفيذية E

سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة

**************************************************

<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>

**************************************************

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

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