.[ ČeskéHry.cz ].
Potrebuji poradit - zobrazeni znaku v retezci

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
mival



Založen: 28. 08. 2010
Příspěvky: 85

PříspěvekZaslal: 20. září 2011, 16:38:09    Předmět: Potrebuji poradit - zobrazeni znaku v retezci Odpovědět s citátem

Dobry den,
nedavno jsem se zacal ucit C++ a potrebuji zobrazit znak ve stringovem retezci, ktery je v nem treba 2.
Neco ve stylu: vratznakvretezci("blabla", 2);
A vrati to: l
Neco takoveho tedy potrebuji, dekuji za kazdou radu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
satik



Založen: 06. 05. 2010
Příspěvky: 161
Bydliště: Krkonose

PříspěvekZaslal: 20. září 2011, 16:52:46    Předmět: Re: Potrebuji poradit - zobrazeni znaku v retezci Odpovědět s citátem

mival napsal:
Dobry den,
nedavno jsem se zacal ucit C++ a potrebuji zobrazit znak ve stringovem retezci, ktery je v nem treba 2.
Neco ve stylu: vratznakvretezci("blabla", 2);
A vrati to: l
Neco takoveho tedy potrebuji, dekuji za kazdou radu.


http://pastebin.com/GdNXbQ4R

takhle treba... jen by se jeste melo hlidat, jestli je ten string dost dlouhy a nelezes "za nej"
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
mival



Založen: 28. 08. 2010
Příspěvky: 85

PříspěvekZaslal: 20. září 2011, 17:26:52    Předmět: Re: Potrebuji poradit - zobrazeni znaku v retezci Odpovědět s citátem

Nejede mi to kdyz tam mam to string.
Takto kdyz to upravim funguje to jak ma, ale potrebuji abych pracoval se string a ne s char.
kód:
 
 char funkce(char str[], int pos)
    {
             return str[pos];
    }
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mival



Založen: 28. 08. 2010
Příspěvky: 85

PříspěvekZaslal: 20. září 2011, 17:34:30    Předmět: Re: Potrebuji poradit - zobrazeni znaku v retezci Odpovědět s citátem

Potrebuji aby kdyz uzivatel zada data, aby se ulozila do stringu a pak jsem zavolal funkci ktera zobrazi znak z toho stringu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Deluxe



Založen: 31. 07. 2007
Příspěvky: 235
Bydliště: Oslavany

PříspěvekZaslal: 20. září 2011, 17:46:37    Předmět: Odpovědět s citátem

zkus:
kód:
 str.at(pos)

viz. http://www.cplusplus.com/reference/string/string/at/

EDIT: Ale to co psal satik by mnelo jit taky. http://www.cplusplus.com/reference/string/string/operator%5B%5D/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mival



Založen: 28. 08. 2010
Příspěvky: 85

PříspěvekZaslal: 20. září 2011, 18:08:56    Předmět: Odpovědět s citátem

Deluxe: Moc dekuji, to je presne co jsem hledal.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mival



Založen: 28. 08. 2010
Příspěvky: 85

PříspěvekZaslal: 20. září 2011, 18:32:48    Předmět: Odpovědět s citátem

A jeste jeden hloupy dotaz. Jde udelat nejak toto:

kód:

string text[12];
text[1] = "A";
string textdruhy[12];
textdruhy = text;



Aby potom textdruhy[1] bylo "A" atd??

Potrebuji mit funkci kterou kdyz zavolam:
kód:

string textdruhy[12];
textdruhy = funkce();


Naplni nejak to pole.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Deluxe



Založen: 31. 07. 2007
Příspěvky: 235
Bydliště: Oslavany

PříspěvekZaslal: 20. září 2011, 18:42:02    Předmět: Odpovědět s citátem

EDIT: Ted vidim, ze mas vlastne pole retezcu...
Tak pak napis normalne textdruhy[1] = text[1];
ale nejsem si jistej co vlastne chces udelat...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mival



Založen: 28. 08. 2010
Příspěvky: 85

PříspěvekZaslal: 20. září 2011, 18:52:40    Předmět: Odpovědět s citátem

Rekneme ze jich ale budu mit 100, to je potom blbe to psat takto, a chci to udelat jako funkci kterou jen zavolam a ona udela co potrebuji.

Potrebuji aby kdyz naplnim v jedne funkci nejake pole stringu aby ho vratila zase jako stejne pole takze kdyz tamto pole bude o velikosti 100 tak vrati 100 uplne stejne serazenych abych pak jen napsal:
string pole[100];
pole = funkce("dasdghasds|sadsad|sddss|sdsaaaaa");
cout << pole[0];
cout << pole[4];
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mival



Založen: 28. 08. 2010
Příspěvky: 85

PříspěvekZaslal: 20. září 2011, 18:56:52    Předmět: Odpovědět s citátem

Chci udelat neco jako je Explode v PHP. Jen trochu jinak a proto to chci udelat po svem.

kód:
string explode(string str)
    {   
   string text[10];
    string momentalnichar;
   int polecislo = 0;
   for (int i=0; i < str.length(); i++)
    {
    momentalnichar= str.at(i);
   if(momentalnichar == "|")
   {
   polecislo+= 1;
   }
   else
   {
   text[polecislo] +=  str.at(i);
   text[polecislo] += "\n";
    }
   }


    return text[1];
    }
   
string text[10];
text[0] = explode(str);
cout << text[0];


Takto to ted mam ale ja potrebuji aby to vratilo cele to pole a ne jen 1
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
uiii



Založen: 12. 08. 2007
Příspěvky: 251

PříspěvekZaslal: 20. září 2011, 19:19:14    Předmět: Odpovědět s citátem

Porblem, je ze nelze jednoduse pole z funkce vracet. Musel bys ho jedine dynamicky alokovat a pak ho zase nekde deletovat, coz je zbytecna prace. Byt tebou tak se podivam na std::vector. Coz je takove vylepsene pole a lze ho i vracet z funkce. Takze vysledek by mohl vypadat takhle.
kód:

std::vector<std::string> explode(std::string str)
{   
    std::vector<std::string> text(10);
    char momentalnichar; // lepsi kdyz je to char kdyz pristupujes k charu
    int polecislo = 0;
    for (int i=0; i < str.length(); i++)
    {
         momentalnichar= str.at(i);
         if(momentalnichar == '|')  // misto retezce char (tzn apostrofy)
         {
             polecislo+= 1;
         }
         else
         {
             text[polecislo] +=  momentalnichar;
             text[polecislo] += "\n"; // nevim proc to tam davas
         }
    }


    return text;
}
   
std::vector<std::string> text;
text = explode(str);
std::cout << text[0];


EDIT: pri deklaraci toho vectoru na prvnim radku funce musi byt misto hranatych zavorek kulate.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mival



Založen: 28. 08. 2010
Příspěvky: 85

PříspěvekZaslal: 21. září 2011, 14:44:32    Předmět: Odpovědět s citátem

uiii: Moc dekuji, funguje to ted jak ma a muzu konecne zacit delat co potrebuji.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna