20-11-2005, 23:08
|
|
|
|
חבר מתאריך: 19.09.05
הודעות: 51
|
|
יש לי בעיה בקוד ואני לא מבין למה
כתבתי קוד שאמור לקלוט מערך של תוים (אותיות) ועוד מערך קטן יותר של תוים ולהוציא מהמערך הראשון את התוים שמופיעים המערך השני
אני לא מצליח להבין למה התוכנית לא עושה מה שאני רוצה אם מישהו יכול לעזור לי אני אודה לכם מאוד כמו כן אני מצרף את הקוד
תודה מראש
#include <stdio.h>
#include <string.h>
#include <malloc.h>
void Shrink(char* String1, char* String2);
char* Arr3;
void main()
{
char* Arr1[10];
char* Arr2[10];
printf("Please Enter A String,(Maximum Ten Chars) :\n");
scanf("%s",Arr1);
printf("Please Enter Another String For Extracting,(Maximum Ten Chars) :\n");
scanf("%s",Arr2);
printf("The Restract String Is : %s",Arr3);
free(Arr3);
}
////////////////////////////////////////////////////////////
void Shrink(char* String1, char* String2)
{
// Counter For The Strings
int i,j,t=0;
// Will Be The Size Of String1
int Size1;
// Will Be The Size Of String2
int Size2;
// New Arry That WILL Be Returned And Print Out
Size1=strlen(String1);
Size2=strlen(String2);
// The Maximum Size Of The Arry
Arr3=(char*)malloc(Size1*sizeof(char));
// If The Creation Of The Arry Failed The Function Will Be Stop
if (Arr3==NULL)
printf("Error");
else
{
for(i=0;i<Size1;i++)
{
if ((String1[i]!=String2[j])&&(String1[i]!='\0'))
{
Arr3[t]=String1[i];
t++;
String1[i]='\0';
}
else
{
j++;
if (String2[j]=='\0')
j=0;
}
}
// Changes The Logic Size Of The Arry To The Actual
Arr3=(char*) realloc(Arr3,t*(sizeof(char)));
}
}
_____________________________________
Your signature did not follow Fresh's signatures policy, therefore it was automatically erased. Please see the E-Mail which has been sent to you, to learn how to fix this.
נערך לאחרונה ע"י mkuriel בתאריך 20-11-2005 בשעה 23:13.
|