Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
mival
Založen: 28. 08. 2010 Příspěvky: 85
|
Zaslal: 20. září 2011, 16:38:09 Předmět: Potrebuji poradit - zobrazeni znaku v retezci |
|
|
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 |
|
|
satik
Založen: 06. 05. 2010 Příspěvky: 161 Bydliště: Krkonose
|
Zaslal: 20. září 2011, 16:52:46 Předmět: Re: Potrebuji poradit - zobrazeni znaku v retezci |
|
|
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 |
|
|
mival
Založen: 28. 08. 2010 Příspěvky: 85
|
Zaslal: 20. září 2011, 17:26:52 Předmět: Re: Potrebuji poradit - zobrazeni znaku v retezci |
|
|
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 |
|
|
mival
Založen: 28. 08. 2010 Příspěvky: 85
|
Zaslal: 20. září 2011, 17:34:30 Předmět: Re: Potrebuji poradit - zobrazeni znaku v retezci |
|
|
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 |
|
|
Deluxe
Založen: 31. 07. 2007 Příspěvky: 235 Bydliště: Oslavany
|
|
Návrat nahoru |
|
|
mival
Založen: 28. 08. 2010 Příspěvky: 85
|
Zaslal: 20. září 2011, 18:08:56 Předmět: |
|
|
Deluxe: Moc dekuji, to je presne co jsem hledal. |
|
Návrat nahoru |
|
|
mival
Založen: 28. 08. 2010 Příspěvky: 85
|
Zaslal: 20. září 2011, 18:32:48 Předmět: |
|
|
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 |
|
|
Deluxe
Založen: 31. 07. 2007 Příspěvky: 235 Bydliště: Oslavany
|
Zaslal: 20. září 2011, 18:42:02 Předmět: |
|
|
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 |
|
|
mival
Založen: 28. 08. 2010 Příspěvky: 85
|
Zaslal: 20. září 2011, 18:52:40 Předmět: |
|
|
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 |
|
|
mival
Založen: 28. 08. 2010 Příspěvky: 85
|
Zaslal: 20. září 2011, 18:56:52 Předmět: |
|
|
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 |
|
|
uiii
Založen: 12. 08. 2007 Příspěvky: 251
|
Zaslal: 20. září 2011, 19:19:14 Předmět: |
|
|
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 |
|
|
mival
Založen: 28. 08. 2010 Příspěvky: 85
|
Zaslal: 21. září 2011, 14:44:32 Předmět: |
|
|
uiii: Moc dekuji, funguje to ted jak ma a muzu konecne zacit delat co potrebuji. |
|
Návrat nahoru |
|
|
|