C++ pripojeni cisla k retezci – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C++ pripojeni cisla k retezci – C / C++ – Fórum – Programujte.comC++ pripojeni cisla k retezci – C / C++ – Fórum – Programujte.com

 

Geralt
~ Anonymní uživatel
21 příspěvků
28. 7. 2007   #1
-
0
-

Ahoj,

mam tento kod:

string retezec = "retezec cislo ";
retezec += 1;

a potrebuju, aby po vykonani techto dvou prikazu bylo v promenne retezec "retezec cislo 1". Bohuzel misto toho kompilator prevede cislo 1 na char a pak jej teprve pripoji jako znak o dannem ASCII kodu ...

Nevte nekdo jak jej donutit aby mi pridal cislo ne znak?

Diky Geralt

Nahlásit jako SPAM
IP: ...–
mephi0
Expert
28. 7. 2007   #2
-
0
-

retezec += '1';
a keď viac:
retezec += "123";
---
1 - int
1.0F - float
'1' - char
"123" - char* (string)
---
mimochodom tie úvodzovky píšeš <ALT> + P

Nahlásit jako SPAM
IP: ...–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
Geralt
~ Anonymní uživatel
21 příspěvků
28. 7. 2007   #3
-
0
-

Hmm ja jsem to spatne napsal ... chtel jsem to zjednodusit, abych co nejvice zduraznil problem, a zjednodusil jsem to az moc ...

Ten kod ve skutecnosti mel byt neco jako:

string retezec = "retezec cislo ";
int i = 1;
string += i;

...

Nahlásit jako SPAM
IP: ...–
Zdeny+
~ Anonymní uživatel
13 příspěvků
28. 7. 2007   #4
-
0
-

To co si přeješ neuděláš bez lepších znalostí jazyka, ikdyž při troše snahy snad i jo na takovémhle jednoduchém příkladě. Aby jedna proměnná byla typu int i string to nejde! Ty tam chceš mít obojí, takže sáhneš po string, aby se sem číslo vložilo zkonvertuje se na string a vloží. Pak z toho stringu chceš zase vymlátit číslo a možná i string :) -> musíš parsovat, velmi jednoduše pokud chceš rozdělit jen text a čísla, uděláš si dvě proměnné nebo dvě pole(string a int,), záleží na tobě kolik tam toho chceš napráskat do textu. A pak už jedeš dokud máš znak a jak narazíš na číslo vrátíš pozici -1 zase dokud máš číslo a naopak :) - tak získáš části textu a čísla, no musíš mít ještě nějakou logiku, čeho chceš docílit, tohle by ti jako inspirace mělo pomoci. Ale pokud začínáš, tak to bude chvíli trvat, tak se nevzdej po první chybě ;)

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
637 příspěvků
28. 7. 2007   #5
-
0
-

To Geralt:
Použij streamy.



#include <sstream>
string str ("reteazec ");
ostringstream out;
int num = 156;
out << str << num;
str=out.str();
//atd..

Nahlásit jako SPAM
IP: ...–
Geralt
~ Anonymní uživatel
21 příspěvků
28. 7. 2007   #6
-
0
-

Tak vsechno funguje jak ma ... Diky za pomoc :) Geralt

Nahlásit jako SPAM
IP: ...–
Geralt
~ Anonymní uživatel
21 příspěvků
28. 7. 2007   #7
-
0
-

Mel bych jeste jeden dotaz ...

Co s nasledujicim kodem?

std::string retezec;
std::ostringstream out;
for (int i = 0; i < 10; i++)
{
out << "retezec cislo " << i;
retezec = out.str();
}

Po prvnim provedeni cyklu mi retezec zustane ve streamu a tak misto aby podruhe ulozil do promenne retezec "retezec cislo 1", ulozi "retezec cislo 0retezec cislo 1" ... Jak mam ten stream vyprazdnit, aby cyklus fungoval, jak ma?

Nahlásit jako SPAM
IP: ...–
Jura
~ Anonymní uživatel
637 příspěvků
28. 7. 2007   #8
-
0
-

Nějak jsem nepobral, co vlastně chceš? Tohle?



std::string retezec;
for (int i = 0; i < 10; i++)
{
std::ostringstream out;
out << "retezec cislo " << i;
retezec = out.str();
}

Nahlásit jako SPAM
IP: ...–
Geralt
~ Anonymní uživatel
21 příspěvků
28. 7. 2007   #9
-
0
-

Ano, presne tohle ... diky :)

Nahlásit jako SPAM
IP: ...–
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, 103 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ý