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

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

بدأه std في 27 مايو 2009 · 3 رد · 3,787 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

في هذا الكود مقارنة بين سلسلتين نصيتين، بس يطلع عندي خطأ عند دالة المقارنة، ممكن تفيدوني أيش هو الخطأ

#include <iostream>
#include <string>
using namespace std;
void main()
{
string sure="";
string key="";
int i;
getline(cin, sure, '\n');
getline(cin, key, '\n');
i=strcmp(sure,key);
	   if(i==0)
cout<<1;

}

تم تعديل هذه المشاركة بواسطة std في 27 مايو 2009 في 21:52

#2

ببساطة لأن الدالة strcmp تستقبل مؤشرين من النوع char

وأنت مررت لها sure, key اللذان من النوع string

هذا الكود ولاحظ الفرق

#include <iostream>
#include <string>

using namespace std;

void main()
{
	string sure;
	string key;

	getline(cin, sure, '\n');
	getline(cin, key, '\n');
	if(sure == key)					   // instead of  strcmp
		cout<<1;

}

SAFETY TIP : Always delete what you new, and free what you malloc, never mix new with free or malloc with delete.

#3

شكرأ لك أخي

لكن سواءً كانت السلسلتين النصيتين متطابقتين أم لا

فإن هذا الكود يقوم بطباعة واحد في كل الأحوال

وشكراً

#4

السلام عليكــم ورحمـة الله وبركاتــه ،،

char a[10]="aaaaa";

char b[10]="aaaaa";

i=0;

while (stcmp(a,b) && (i<10))

{i++;}

if(i==10)

// are equals

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