» »

Preverjanje besed v datoteki

Preverjanje besed v datoteki

djv ::

A ve kdo, kako bi to naredil v C++-u.
Namreč...jaz imam eno vhodno datototeko (npr. vhod.txt), kjer je neko besedilo. Zdaj pa bi jaz vpisal neko besedo in program bi mi vse besede, ki so iste vpisani, prepisal v izhodno datoteko (izhod.txt).
Problem je pravzapral samo pri preverjanu, ali je vpisana beseda enaka kateri v datoteki. Sam sem to naredil z while zanko ki gre dokler ne naleti na znak 'presledek', ali pa na EOF (end of file). Kako pa naj sedaj, ko sem prišel do presledka to besedo preverim. A ve kdo?:\
  • spremenilo: djv ()

wintermute ::

Z neznosno lahkostjo STLja bi cel problem resil takole:


#include &ltstring&gt
#include &ltiterator&gt // istream_iterator, ostream_iterator
#include &ltfstream&gt // ifstream, ofstream
#include &ltfunctional&gt // bind2nd, equal_to

using namespace std;

template&ltclass InIter, class OutIter, class Predicate&gt
OutIter copy_if(InIter first, InIter last, OutIter out, Predicate pred)
{
while (first != last)
{
if (pred(*first)) *out++ = *first;
++first;
}
return out;
}

int main()
{
string keyword = "krneki";

ifstream input("input.txt");
ofstream output("output.txt");

istream_iterator&ltstring&gt ii(input), eof;
ostream_iterator&ltstring&gt oi(output, "\n");

copy_if(ii, eof, oi, bind2nd(equal_to&ltstring&gt(), keyword));
}

&nbsp
&nbsp
Sicer pa C-style stringe primerjas z uporabo strcmp funkcije (header string.h), npr:

char* beseda1;
char* beseda2;

// od nekje zdaj dobis zgornji besedi

int ret = strcmp(beseda1, beseda2);

if (ret == 0) cout &lt&lt "besedi sta enaki\n";
else if (ret &lt 0) cout &lt&lt "beseda1 je po abecedi pred besedo2\n";
else cout &lt&lt "beseda1 je po abecedi za besedo2";

Opomba: gre za case-sensitive primerjavo.

&nbsp
&nbsp
HTH.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Pomoč pri Javi

Oddelek: Programiranje
182382 (1988) mgermo
»

branje iz datoteke c#

Oddelek: Programiranje
141572 (1301) darkolord
»

[C++] Kopiranje char arraya v drug char array

Oddelek: Programiranje
71192 (1063) win64
»

[JAVA] zaustavitev niti (threadov)

Oddelek: Programiranje
223063 (3063) morbo
»

c++ datoteke

Oddelek: Programiranje
463846 (3335) Vesoljc

Več podobnih tem