שאלה בשפת C

idang19888

New member
שאלה בשפת C

*מחרוזות* כתבתי תוכנית אני רוצה שישווה בין המחרוזת לתת מחרוזת ויציג לי בסוף באותיות גדולות את האותיות המשותפות
למשל : the mouse is useful
use
the moUSE is USEful
זו התוכנית:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void replaceSubstring(char *string, char * substring);
void main()
{
char string[100], substring = ' ';
int i = 0;
while (string != 0 && substring != 0)
{
replaceSubstring(&string, &substring);
}
if (&string == 0 && &substring == 0)
printf("finish\n");
}
void replaceSubstring(char *string, char * substring)
{
int i = 0;
char *cycle;
printf("Enter Text: ");
gets(string);
printf("Enter substring: ");
gets(substring);
for (i = 0; string != 0; i++)
{
cycle = strstr(string, substring);

}
for (i = 0; string != 0; i++)
{
if (*cycle == string)
if (string >= 97 && string <= 122)
{
string = string - 32;
cycle++;
}
}
puts(string);
}

בקלט אני מקבל רק
the moUSE is useful
איך אני גורם לתוכנית שוב לבדוק את התנאי הזה? ניסתי בכמה דרכים ללא הצלחה.
 

BravoMan

Active member
רציתי לעזור לך, אבל לא נראה שאפשר להציל את הקוד שלך...

אני לא מבין בכלל איך התוכנית שלך מצליחה להדפיס משהו בלי לקרוס.
יש כ"כ הרבה שגיאות לוגיות במה שכתבת, שלא ברור איך בכלל הקוד הזה אמור לענות על השאלה שהצגת...
&nbsp
כל מה שאני יכול להציע לך בשלב הזה זה שתתחיל מהתחלה:
1. תחשוב מה הוא סדר הפעולות הנחוץ
2. רשום אותו על דף בשפה אנושית שלב אחרי שלב
3. תרגם את השלבים לקוד
&nbsp
בהצלחה!
 
למעלה