Permalänk

Hitta ett ord i en text!c++

Tjena! är ganska ny i c++, och skulle behöva lite hjälp med en uppgift från boken jag har, den ser ut som följande:

Skriv ett program som söker efter ett ord i en text och som meddelar användaren om ordet finns. Både text och ord matas in under programkörningen.

Jag har försökt använda mig av find funktionen, men får inte fram nåt som stämmer.

har sökt runt men det jag hittar är alldeles för avancerat för att jag ens ska förstå atm.
hjälp uppskattas:)

Permalänk
Medlem

Du får gärna utveckla lite.
Vart matas text och ord in? Hur lagras det, i en sträng?

Visa signatur

10700K | NVIDIA RTX 3080

Permalänk
Skrivet av kwame:

Du får gärna utveckla lite.
Vart matas text och ord in? Hur lagras det?

Jo, alltså man ska tydligen börja med att mata in texten, sedan det ord man vill söka efter. men det är delen där man söker efter ordet jag undrar över. lite tydligare?

Permalänk
Medlem

@foppaking: Visa gärna koden du har just nu så kan vi hjälpa dig klura ut vad som är fel. Vi brukar undvika att ge färdiga lösningar på uppgifter eftersom de flesta lär sig bättre av att hitta lösningen själva.

Permalänk
Skrivet av perost:

@foppaking: Visa gärna koden du har just nu så kan vi hjälpa dig klura ut vad som är fel. Vi brukar undvika att ge färdiga lösningar på uppgifter eftersom de flesta lär sig bättre av att hitta lösningen själva.

är bara ute efter att veta vilken funktion som ska användas:) är det "string.find" eller "string.substr" etc. och på vilket sätt ska man få in if satsen i det? enda koden jag har atm är:
string text;
char ord[20];

cout << "Mata in en text: ";
getline(cin, text);
cout << "Mata in ett ord: ";
cin >> ord;

Permalänk
Medlem

@foppaking: find söker i en sträng och returnerar antingen positionen för delsträngen som hittades eller string::npos om inget hittades. Se cppreference för dokumentation, där finns även lite exempel längre ned.

substr (cppreference) tar däremot en position och en längd och returnerar en delsträng.

I ditt exempel använder du för övrigt char[20] istället för en std::string, varför då?

Permalänk
Skrivet av perost:

@foppaking: find söker i en sträng och returnerar antingen positionen för delsträngen som hittades eller string::npos om inget hittades. Se cppreference för dokumentation, där finns även lite exempel längre ned.

substr (cppreference) tar däremot en position och en längd och returnerar en delsträng.

I ditt exempel använder du för övrigt char[20] istället för en std::string, varför då?

okej så "string ord;" istället för char. men sen då för att hitta ordet i texten skall jag använda mig av text.substr()? om du inte orkar förklara så e de lungt:) var bara nyfiken på hur den ska användas.

Permalänk
Medlem
Skrivet av foppaking:

okej så "string ord;" istället för char. men sen då för att hitta ordet i texten skall jag använda mig av text.substr()? om du inte orkar förklara så e de lungt:) var bara nyfiken på hur den ska användas.

Ja, använd string, det finns nästan aldrig någon anledning att använda en char-array i C++ annat än för att lära sig hur string fungerar internt. För att söka i en string använder du som sagt find.

substr används för att plocka ut en del av en sträng (t.ex. string("hello world").substr(6, 5) ger "world"), vilket du inte verkar ha något behov av i den här uppgiften.

Permalänk
Skrivet av perost:

Ja, använd string, det finns nästan aldrig någon anledning att använda en char-array i C++ annat än för att lära sig hur string fungerar internt. För att söka i en string använder du som sagt find.

substr används för att plocka ut en del av en sträng (t.ex. string("hello world").substr(6, 5) ger "world"), vilket du inte verkar ha något behov av i den här uppgiften.

yes!:) tack för hjälpen iaf, har tagit mig lite längre. ska försöka lite till!