(C++) Prvky pole do společné proměnné – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

(C++) Prvky pole do společné proměnné – C / C++ – Fórum – Programujte.com(C++) Prvky pole do společné proměnné – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
richard.zavodny0
Návštěvník
4. 5. 2017   #1
-
0
-

Zdravím, mám proměnnou (80) znaků a potřebuju z nich dostat jen některé... Vím, že jsou reprezentovány jako pole, takže k nim takhle i přistupuji. Viz. kód:

string dataMerged = data[3] + data[7] + data[14];

Jak je vám jistě jasné, toto řešení nefunguje a nedaří se mi ho dostat do funkční podoby. Snad chápete, co mám na mysli.

Předem díky. :)
 

Nahlásit jako SPAM
IP: 109.81.208.–
Programátor, Kóder, Grafický designér, Kritik, zastánce Open-Source a Linuxu.
KIIV
~ Moderátor
+43
God of flame
4. 5. 2017   #2
-
+1
-
Zajímavé

Jednotlive znaky jsou 8bitove cisla, takze jedine, ceho tim dosahnes je soucet tech tri.

Pokud chces neco jineho, tak muzes zkusit nekolik variant:

string dataMerged;
dataMerged += data[3];
dataMerged += data[7];
dataMerged += data[14];

// a nebo taky: (ale musis mit podporu standardu c++11)
string dataMerged( {data[3], data[7], data[14]} );
Nahlásit jako SPAM
IP: 213.220.205.–
Program vždy dělá to co naprogramujete, ne to co chcete...
richard.zavodny0
Návštěvník
5. 5. 2017   #3
-
0
-

#2 KIIV
No, druhá varianta mi nejde zkompilovat (C++ 11 samozřejmě mám) a varianta prvá nedělá nic jiného, než že háže bad_alloc. :(

Nahlásit jako SPAM
IP: 109.81.208.–
Programátor, Kóder, Grafický designér, Kritik, zastánce Open-Source a Linuxu.
gna
~ Anonymní uživatel
1891 příspěvků
5. 5. 2017   #4
-
0
-

#3 richard.zavodny
A připadá ti, že by taková věc měla mít problém s pamětí? Zkus si to v čistém programu.

Buď opravdu není volná paměť, což není moc pravděpodobné. Nebo jsi něco rozmrdal, což je mnohem pravděpodobnější, když si pořád hraješ s polema a nechápeš ani základní příkazy.

Nahlásit jako SPAM
IP: 213.211.51.–
Řešení
KIIV
~ Moderátor
+43
God of flame
5. 5. 2017   #5
-
+1
-
Zajímavé
Vyřešeno Nejlepší odpověď

Oboje krasne funguje: http://cpp.sh/8galq

// Example program
#include <iostream>
#include <string>

int main()
{
  char test[] = "abcdefghijklmnopqrstuvwxyz";
  
  std::string varianta1;
  varianta1 += test[10];
  varianta1 += test[8];
  varianta1 += test[8];
  varianta1 += test[21];
  

  std::string varianta2({test[10], test[8], test[8], test[21]});
  
  std::cout << "Varianta 1: " << varianta1 << "\n";
  std::cout << "Varianta 2: " << varianta2 << "\n";
}
Nahlásit jako SPAM
IP: 93.91.151.–
Program vždy dělá to co naprogramujete, ne to co chcete...
richard.zavodny0
Návštěvník
5. 5. 2017   #6
-
0
-

Díky, opravdu to funguje, chyba byla na mé straně. Já si totiž napsal funkci a vracel/dodával data přes referenci. Nelíbila se tomu ta hvězdička na začátku proměnné.

Díky moc. :)

Nahlásit jako SPAM
IP: 109.81.208.–
Programátor, Kóder, Grafický designér, Kritik, zastánce Open-Source a Linuxu.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 88 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý