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

سؤال عن دالة strcat

مغلق
بدأه السهم الناري في 17 يونيو 2003 · 7 رد · 966 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أخواني وأخواتي الكرام أنا عملت class يحتوي على معظم الدوال string والعمليات عليه

وأريد أن أضيف دالة strcat إليه حتى يكتمل نجاح البرنامج والسؤال هو

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

أرجوا المساعده.

اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا أنك أنت العليم الحكيم

سبحان الله وبحمده سبحان الله العظيم

لاحول ولاقوة الا بالله( كنز من كنوز الجنة ).

#2

أعتقد يتم حجز حجم جديد للـ string الأصلية ثم تُوضع فيها الـ string الجديدة محرف وراء محرف :(

#3

#include

#include

char * str_cat(char * Des, const char * src)

{

char * str_aux = Des;

int len;

int len_src;

int i;

len = strlen(str_aux) + strlen(src);

Des = new char[len];

Des[len] = '

#4

مشكور أخ اسماعيل

بس بجرب الكود ورد عليك أن شاء الله ...

لكن لي ملاحظة أنا لا أريد استخدام مكتبة string أبداً بمعنى أريد محاولة محاكاتها...

لكن إذا كان الكود صح ممكن ان شاء الله أتغلب عل هالمشكلة البسيطة..

مشكور ونريد مزيد من الأفكار ياشباب....

اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا أنك أنت العليم الحكيم

سبحان الله وبحمده سبحان الله العظيم

لاحول ولاقوة الا بالله( كنز من كنوز الجنة ).

#5

اولا في الclass يجب ان يكون لديك طول السلسلة وليكن n

ثانيا يلزم قراءة طول السلسلة الجديدة وليكن m

ثالثا يجب انشاء متغير x من الوع CHAR*x

x=new char[n+m]

بعد ذلك خزن قيم السلسلة الأصلية في x

int k=0;
for(int i=0;ix[k++]=Myarray;
for(i=0;ix[k++]=y;

this.Myarray=x;

ملحوظة استخدم ال +=

للقيام بنفس العمل

اللهم انا نسألك علما نافعا ونعوذ بك من حماقة الجهلاء
#6

أخي السهم الناري أنا افترضت أنك قمت بكتابة تابع حساب طول سلسلة محرفية وتابع نسخ سلسلة محرفية وبالتالي يمكنك استخدام توابعك وبالتالي ما في مشكلة (f)

#7

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

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

أخ اسماعيل لأمانه العلمية الكود صح وقمت أنا بعمل تطوير له لجعل عام وكذلك استغنيت عن استخدام المكتبة string.h وأن شاء الله سأقوم بكتابته داخل class وأجعله بالامتداد .h وأعرضه في المنتدى أن شاء الله .....

إليك البرنامج بعد التعديل وأشكر لك أفكارك القيمة ...

بعد التعديل يمكنك كتابة الدالة strcat كما هي صريحة بدون كتابة str_cat

وشكرا لكل من شارك....

//#include

#include

int strlen(const char *ptr)

{

int i=0;

while( *ptr!='

اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا أنك أنت العليم الحكيم

سبحان الله وبحمده سبحان الله العظيم

لاحول ولاقوة الا بالله( كنز من كنوز الجنة ).

#8

الخطأ في الشرط داخل دالة strlen وهو '

اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا أنك أنت العليم الحكيم

سبحان الله وبحمده سبحان الله العظيم

لاحول ولاقوة الا بالله( كنز من كنوز الجنة ).

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

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