Ich hab diesmal mal ein kleines Testproblem, ich hab mir gedacht, nachdem ich jemanden gesehen habe, der eine Zahlausgabe mit Tausenderzeichen nicht schafft, das mache ich doch schnell, das funktioniert auch ganz gut, jedoch wundere ich mich, dass das return den string löscht!?
C
#include <Windows.h>
#include <string>
#include <iostream>
using namespace std;
char* tausendzahl(unsigned int zahl)
{
char ausgabe[21];
_itoa_s((int)zahl,ausgabe,10);
string str=ausgabe;
int len=str.length();
for (int x=len-3; x>0; x-=3)
{
str=str.insert(x,".");
}
char *nzahl=const_cast<char*>(str.c_str());//Hier ist noch 23.769.237
return nzahl;//Hier wird es plötzlich ""
}
int main()
{
char* nzahl=tausendzahl(23769237);
cout << nzahl;
system("pause >nul");
return 0;
}
Alles anzeigen
Ich frage mich, warum wird der String gelöscht, wenn ich es doch zurückgebe