Forum: Compiler & IDEs Suche ein Word in einer Kette


von Alex (Gast)


Lesenswert?

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];
                }
       }
 }

}

von Heinz (Gast)


Lesenswert?

> char MyArray[6][6]={"mybit","bit",fistbit",sbsiti","hallo"};

Der String "fistbit" z. B. ist zu lang

von Alex (Gast)


Lesenswert?

ja kleiner Fehler beim eintippen

von Honk (Gast)


Lesenswert?

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.

von Heinz (Gast)


Lesenswert?

> char MyArray[6][6]={"mybit","bit",fistbit",sbsiti","hallo"};

Der String "sbsiti" ist auch zu lang.

von Honk (Gast)


Lesenswert?

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.

von Honk (Gast)


Lesenswert?

Nimm zum Einbinden von Code in Zukunft Bitte:
1
[c] [/c]

Die Formatierung oben ist furchtbar.

von Alex (Gast)


Lesenswert?

Das Problem kommt früher,

wenn er "bit" in "mybit" er trifft nicht die if schleife

von Honk (Gast)


Lesenswert?

stimmt, das kommt ja auch noch dazu O.o

von Alex (Gast)


Lesenswert?

bekomme ich Hilfe für das Problem?

von Heinz (Gast)


Lesenswert?

Alex schrieb:
> bekomme ich Hilfe für das Problem?

Coole Frage.

von Noname (Gast)


Lesenswert?

>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.

von Noname (Gast)


Lesenswert?

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

von Stryker (Gast)


Lesenswert?

Alex schrieb:
> if schleife

Bitte bitte nicht: www.if-schleife.de

von Honk (Gast)


Lesenswert?

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
}

von Walter S. (avatar)


Lesenswert?

Alex schrieb:
> bekomme ich Hilfe für das Problem?

ins Deutsche übersetzt:
macht mir jemand meine Hausaufgabe?

von Honk (Gast)


Lesenswert?

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!

von Karl H. (kbuchegg)


Lesenswert?

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.

von Anfänger (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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
Noch kein Account? Hier anmelden.