Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

problem: strlen (string)

[es] :: C/C++ programiranje :: problem: strlen (string)

[ Pregleda: 2746 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

trillian fextell
Tomislav Kostovic
Rovinj

Član broj: 60442
Poruke: 2
*.cmu.carnet.hr.



Profil

icon problem: strlen (string) 05.06.2005. u 16:28 - pre 229 meseci
Ciao!
Imam jedan problem.Profa nam mi je dao sljedeci zadatak iz osnova c++ programiranja (iskreno,ne znamo bas programirati pa trazimo pomoc ekipe koji su zavrsili inf.fax ili slicno da nam pomognu u tome...sramota,znam)

23. Napisite program koji ce ucitati proizvoljnu tekstualnu datoteku te
abecednim redom ispisati sva slova koja se javljaju u svakoj od rijeci. Na
primjer, ako su parametri za upis IviCa, MarICA vjestica, program treba
ispisati a c i.

Okej.Program sam "napravio"...ali stalno se pojavljuju 3 erora na 20,22 i 25 liniji koji glase
:Could not find a match for 'strlen(string)' in function main()

Hvala na pomoci!!!!!

Ovo je program:
Code:

#include <iostream>
#include <fstream>
#include <string>
#include <cstring>
using namespace std;

int main() {
    string red,text,zaIspis,datoteka;
    int n,flag;
    cout<<"Upisi ime datoteke:";
    cin>>datoteka;
    ifstream iFile ("datoteka.txt");
    if(!iFile) {
        cout<<"Greska kod otvaranja datoteke"<<endl;
                      return -1;
                   }
    while (!iFile.eof()) {
            iFile>>red;
            text=text+red;
                      }
    for (int i=0;i<strlen(text);i++) {
            n=0;
            for (int j=0;j<strlen(text);i++) {
                    if (text[i]==text[j]) { 
                        n=n+1;
                        for (int k=0;k<strlen(zaIspis);k++) {
                                if (text[i]==zaIspis[k]) 
                                n=1;
                                                }
                                  } 
                                }
                         
            if (n>1)zaIspis=zaIspis+text[i];
                       }
    cout<<zaIspis;
    return 0;
    }


[Ovu poruku je menjao passenger dana 05.06.2005. u 23:11 GMT+1]
 
Odgovor na temu

Marko Stankovic

Član broj: 11
Poruke: 306
212.200.120.*



Profil

icon Re: problem: strlen (string) 05.06.2005. u 18:22 - pre 229 meseci
Problem je u tome sto koristis funkciju koja kao argument ocekuje char* a ne promenljivu tipa string. strlen je funkcija koja se koristi u c-u, u c++ kad koristis klasu string imas metodu size() koja vraca velicinu stringa. Znaci for petlje treba da izgledaju ovako:

Code:

 ...

 for (int i=0;i<text.size();i++) ...



naravno ovo prepravi svuda gde si pozivao strlen()

P.S. i sledeci put kada ostavljas kod na forumu stavi ga izmedju tagova [ code ] [ /code ] , naravno bez razmaka izmedju zagrada.
I drink to make other people interesting.
 
Odgovor na temu

trillian fextell
Tomislav Kostovic
Rovinj

Član broj: 60442
Poruke: 2
*.cmu.carnet.hr.



Profil

icon Re: problem: strlen (string) 05.06.2005. u 23:41 - pre 229 meseci
E,hvala puno!!!! :-*

Kompajliram ja program i kad upisem datoteka.txt da je otvori program...meni se on zalomi,dojde poruka o nekakvoj greski,stisnem ok i program se ugasi.U vizualnom Borlandovom kompajleru mi oznacio sljedecu liniju da nesto ne valja...gubim se...pa ako netko skuzi sta tu ne valja...hvala jos jednom.

Code:

#include <iostream>
#include <fstream>
#include <string>
#include <cstring>
using namespace std;

int main() {
string red,text,zaIspis,datoteka;
int n,flag;
cout<<"Upisi ime datoteke:";
cin>>datoteka;
ifstream iFile ("datoteka.txt");
if(!iFile) {
cout<<"Greska kod otvaranja datoteke"<<endl;
return -1;
}
while (!iFile.eof()) {
iFile>>red;
text=text+red;
}
for (int i=0;i<text.size();i++) {
n=0;
for (int j=0;j<text.size();i++) {
if (text[i]==text[j]) {  //OVDJE GA KOCI!!!
n=n+1;
for (int k=0;k<zaIspis.size();k++) {
if (text[i]==zaIspis[k])
n=1;
}
}
}

if (n>1)zaIspis=zaIspis+text[i];
}
cout<<zaIspis;
return 0;
}


 
Odgovor na temu

manman
BG

Član broj: 55717
Poruke: 90
*.scnet.yu.



+4 Profil

icon Re: problem: strlen (string) 06.06.2005. u 00:45 - pre 229 meseci
Greska u :
Code:
 for (int j=0;j<text.size();[red]i++[/red]) {
if (text[i]==text[j]) {  //OVDJE GA KOCI!!! 


Znaci treba umesto i++, j++ jer je ta petlja za promenjivu j def.
Ali mislim i da pored ovoga, resenje nije dobro.
Drugo, salji "uvuceni code" tj, kao u prvoj poruci radi bolje preglednosti, a ne poravnat sa leve strane.
 
Odgovor na temu

[es] :: C/C++ programiranje :: problem: strlen (string)

[ Pregleda: 2746 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.