Hi,
ist es möglich ein Word in einem String zu suchen ohne strcat zu
benutzen.
Die Funktion, die ich geschrieben habe, funktioniert nur wenn es mit das
String mit b anfängt.
danke
void search(void)
{
char MyArray[6][6]={"mybit","bit",fistbit",sbsiti","hallo"};
char MYWord[6]="bit";
for(int i=0i<6;i++)
{
for(int j=0;j<6ji++)
{
if(MYWord[i] == MyArray[i][j])
{
Resultat[i]= MYWord[i];
}
}
}
}
> char MyArray[6][6]={"mybit","bit",fistbit",sbsiti","hallo"};
Der String "fistbit" z. B. ist zu lang
Im der ersten for-Schleife fehlt ein Semikolon, in der zweiten auch und einmal steht i statt j (i++ in der zweiten). Word findest du im Mediamarkt, ist ein Programm von Microsoft, was du suchst ist ein Wort.
> char MyArray[6][6]={"mybit","bit",fistbit",sbsiti","hallo"};
Der String "sbsiti" ist auch zu lang.
Das der Code nicht funktioniert liegt an der Zeile:
1 | Resultat[i]= MYWord[i]; |
Wenn das Wort nicht am Anfang los geht, dann steht in Resultat[0] vermutlich eine 0 und der String ist damit beendet.
Nimm zum Einbinden von Code in Zukunft Bitte:
1 | [c] [/c] |
Die Formatierung oben ist furchtbar.
Das Problem kommt früher, wenn er "bit" in "mybit" er trifft nicht die if schleife
>bekomme ich Hilfe für das Problem? Ganz offen gesagt, zeigt Dein Code als auch Deine Fragestellung, das Du viel grundlegendere Probleme mit C hast. Die Antworten beziehen sich erstmal auf diese. Sobald diese gelöst sind, kann man sich dann an die "höheren" Probleme machen. Bitte poste als erstes Code, der ohne Fehler und Warnungen kompilierbar ist. Solche Antworten >ja kleiner Fehler beim eintippen sind Motivationskiller für viele hier. Tippe also bitte nicht ein, sondern nutze CopyNPaste von "echtem" Code.
Kleiner Scherz am Rande: >ist es möglich ein Word in einem String zu suchen ohne strcat zu >benutzen. Das ist nicht nur möglich. Es ist sogar empfehlenswert. :-) Stichwort: strspan
nicht getestet aber könnte funzen:
1 | void search(void) |
2 | {
|
3 | char MyArray[6][6]={"mybit","bit",fistbit",sbsiti","hallo"}; |
4 | char MYWord[6]="bit"; |
5 | #define SIZE_OF_WORD 3
|
6 | int k; |
7 | |
8 | for(int i=0; i<6; i++) |
9 | {
|
10 | k = 0; |
11 | for(int j=0; j<6; j++) |
12 | {
|
13 | if(MYWord[k] == MyArray[i][j]) |
14 | {
|
15 | Resultat[k]= MyArray[i][j]; |
16 | k++; |
17 | }
|
18 | }
|
19 | if( k+1 < SIZE_OF_WORD ) //wenn wort nicht komplett -> ergebnis loeschen |
20 | {
|
21 | Resultat[0] = '\0'; |
22 | }
|
23 | }
|
24 | }
|
Alex schrieb: > bekomme ich Hilfe für das Problem? ins Deutsche übersetzt: macht mir jemand meine Hausaufgabe?
Walter S. schrieb: > Alex schrieb: >> bekomme ich Hilfe für das Problem? > > ins Deutsche übersetzt: > macht mir jemand meine Hausaufgabe? also jetzt bekomme ich aber sein Milchgeld oder ein Kuss von seiner geilen Schwester!
Honk schrieb: > Walter S. schrieb: >> Alex schrieb: >>> bekomme ich Hilfe für das Problem? >> >> ins Deutsche übersetzt: >> macht mir jemand meine Hausaufgabe? > > also jetzt bekomme ich aber sein Milchgeld oder ein Kuss von seiner > geilen Schwester! eher nicht.
nur kritik aber keine Lösung,Wenn es Hausaufgabe dann möchte ich nur wissen wie das funktionniert und nächste mal nicht mehr fragen.
Anfänger schrieb: > nur kritik aber keine Lösung,Wenn es Hausaufgabe dann möchte ich nur > wissen wie das funktionniert und nächste mal nicht mehr fragen. Erst mal das Problem in 2 Teilprobleme aufteilen. Das erste Teilproblem ist eine Funktion die 2 STrings bekommt und feststellt, ob der eine im anderen enthalten ist. Mit der Lösung dieses ersten Teilproblems geht man dann das zweite Teilproblem an: Das ursprüngliche Array ein Wort nach dem anderen durchgehen und unter Zuhilfenahme der Funktion aus dem ersten Teilproblem feststellen, in welchem Wort aus dem Array das gesuchte Wort enthalten ist. Die Aufgabe ist nicht schwer. Nur benötigt es a) ein bischen Vorarbeit mit Papier und Bleistift um sich klar zu machen was denn eigentlich "enthalten sein" bedeutet. Wie löst du das Problem denn mit der Hand, wenn die Lösung "Ich schau einfach hin und weiß die Lösung" nicht zulässig ist? b) ein bischen Planung um das komplette Problem in (für dich) handhabbarere Teilprobleme zu zerlegen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.