Hogyan csináljam meg ezt c++ ban? Próbálgattam de nem megy szánalmas vagyok.
Egy stringbe beolvasok egy mondatot és a mondatban levő leghosszabb szót írja ki a program.
A tervem:
Nem tudom,hogyan de a stringből az összes szót ki kéne szedni és bele tenni egy string típusú tömbbe.
Majd megvizsgálnám,hogy a string tömbnek melyik eleme a legnagyobb méretű azt pedig ki iratom.
Egy másik verzió:
Mi erre a legegyszerűbb megoldás.
Inkább a leprogramozással van bajom min kitalálni a megfelelő algoritmust.
Fel a fejjel senki nem úgy születik hogy tudja, sok-sok gyakorlás kell. :)
Szerintem az strtok fgv-el a legegyszerűbb szétszedni szavakra a stringet.
Végigmegy a string szavain:
Rakhatod akár tömbbe is, vagy pedig elegendő csak eltárolod egy stringbe mindig az aktuálisan leghosszabb szót.
Én ezt az egysorost szoktam használni:
typedef std::vector<std::string> WordList;
WordList wl;
std::copy(std::istream_iterator<std::string>(std::cin), std::istream_iterator<std::string>(), std::back_inserter<std::string>(wl));
Ezután már csak egy maximumkeresés (std::max).
/* strtok example */
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] ="- This, a sample string.";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str," ,.-");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, " ,.-"); /*Itt mi történik itt egy 0 kap a strtok */
}
return 0;
}
strtok (NULL, " ,.-")
Ha null kap akkor az azt jelenti,hogy fojtassa onnan ahonnét abbahagyta.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!