السلام عليكم.
السؤال يقول: اكتب برنامج فيه ثلاث سلاسل نصية(ثلاث جمل) , الجملة الثانية أكبر من الاولى وتحتوي حروف مشابهة لبعض الحروف في الجملة الاولى, على البرنامج ان ينسخ الى الجملة الثالثة(والتي كانت فارغة حتى اللحظة) ان ينسخ اليها الحروف الموجودة في جملة2 وغير موجودة في جملة 1,,
مثال :
جملة 1: How are you,I miss you
الجملة 2: How are your bruther,I miss him
البرنامج يجب ان يجعل الجملة الثالثة تحوي:
r btuther him وبدون الفراغات طبعا.(اي الحروف غير الموجودة في جملة 1 لكنها موجودة في جملة 2.
----
هذا كان السؤال.
(((((((((((((((((((((((((((((((((((
الحل: (والذي لم افهمة واطلب ممن يستطيع تفنيده حرفا حرفا هو:
#include <stdio.h>
void main ()
{
char first [] = "abCDeFGhijKL" , second [ ] = "12a3b4e56hij789" ,
target [ 20 ], * pFirst = first , * pSecond = second,
* pTempSecond , * pTarget = target;
while ( * pFirst && * pSecond ) {
for ( pTempSecond = pSecond ; * pTempSecond; pTempSecond ++ )
if ( * pTempSecond == * pFirst )
break;
if ( * pTempSecond ) {
pFirst ++;
pSecond = pTempSecond + 1;
}
else
* pTarget ++ = * pFirst ++;
}
while ( * pFirst )
* pTarget ++ = * pFirst ++;
* pTarget = 0;
printf ( "%s" , target );
}
طبعا هذا الحل كان مرفقا في نفس الكتاب الذي يحوي السؤال ,,, هل لكم ان تحللوه سطرا سطرا.. وحرفا حرفا..
وشكرا.