C++ string argumentem funkce - chyba

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
acerr
Začátečník
Začátečník
Registrován: 19. dub 2012

C++ string argumentem funkce - chyba

Příspěvek od acerr »

Ahoj, proč mi toto nejde přeložit? Či spíše jak to vyřeším abych mohl string použít jako argument funkce?

Kód: Vybrat vše

#include <iostream>
#include <string>
#include <cstring>
void strcount (const  string * str);
using namespace std;

int main()
{
   string input;
   string next;

   cout << "Zadejte radek textu:\n";
   getline(cin, input);
   while (cin)
   {
       getline(cin,next);
       while (next != "")
        getline(cin,next);
       strcount(input);
       cout << "Zadejte dalsi radek textu (prazdny radek na ukonceni): \n";
       getline(cin,input);
   }
   cout << "Sbohem\n";
   return 0;
}

void strcount(const string * str)
{
    static int total = 0;
    int count = 0;
    cout << "\"" << str << "\" obsahuje ";
    count = strlen(str);
    total +=count;
    cout << count << " znaku\n";
    cout << total << " znaku celkem\n";
}

GrEEEne
Nováček
Nováček
Registrován: 25. bře 2006

Re: C++ string argumentem funkce - chyba

Příspěvek od GrEEEne »

Kód: Vybrat vše

void strcount(const string * str)
-->

Kód: Vybrat vše

void strcount(const string str)
(začal bych takhle, ale nijak podrobně jsem ten tvůj kód nestudoval)
acerr
Začátečník
Začátečník
Registrován: 19. dub 2012

Re: C++ string argumentem funkce - chyba

Příspěvek od acerr »

a proč nemohu předat jen pointer na string? Jako u pole ...
GrEEEne
Nováček
Nováček
Registrován: 25. bře 2006

Re: C++ string argumentem funkce - chyba

Příspěvek od GrEEEne »

std::string v C++ je objekt, nikoliv pole charů jako v C. Zaměř se na nějaké referenční ukázky kódů v učebnicích apod.
OndraSter
Středně pokročilý
Středně pokročilý
Uživatelský avatar
Registrován: 22. úno 2006
Bydliště: Praha / ČVUT FIT
Kontaktovat uživatele:

Re: C++ string argumentem funkce - chyba

Příspěvek od OndraSter »

Taktéž se nevolá strlen(nejakystring), ale buď nejakystring.length nebo strlen(nejakystring.c_str()), pokud chceš použít klasickou C funkci.

Obvykle se používá void nejakametoda(const string& str).
PC: i5-2500k 4.5GHz/24GB RAM/GTX560 Ti 1GB/>5TB - W7 Prof x64; Microsoft SideWinder X3 notebook: HP 6715b (4GB RAM) - W7 Prof x64;
mobil: Nokia Lumia 800 Cyan, 16GB; tablet: Toshiba Portege M200 (2GB, 64GB SSD, GeForce FX5200) - W7 Prof x32


Nahraďte Arduino výkonnější variantou!
Vývojová prostředí a nástroje | Webové prohlížeče | Seznam freehostingů
Odpovědět

Zpět na „Programování a web“