C++: int nach string.

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von Spacemojo, 08.05.2006.

  1. Spacemojo

    Spacemojo Thread Starter MacUser Mitglied

    Beiträge:
    616
    Zustimmungen:
    21
    Registriert seit:
    16.05.2004
    Hi!
    Wie macht man das in ansi-C++?
    int x soll in einen string umgewandelt werden (also nicht in ein char-Array)


    Tobi
     
  2. DanielD

    DanielD Gast

    Es gibt glaub eine Funktion die itoa(); heisst oder mit sprintf(); sollte es auch gehen.

    Edit: Ahh ne vergiss es ist nicht für C++ Strings geeignet glaub ich. Sorry

    Gruß Daniel D.
     
  3. Spacemojo

    Spacemojo Thread Starter MacUser Mitglied

    Beiträge:
    616
    Zustimmungen:
    21
    Registriert seit:
    16.05.2004
    Bisher mach ich das mit sprintf, ich denke dass es aber sicher auch einfacher geht.
     
  4. autoexec.bat

    autoexec.bat MacUser Mitglied

    Beiträge:
    2.130
    Zustimmungen:
    20
    Registriert seit:
    21.01.2005
    Ich würde es mit einem Stringstream machen. Etwa so:
    Code:
    #include <iostream>
    #include <sstream>
    using namespace std;
    
    int main(int argc, char** argv) {
    
         int i = 10;
    
         ostringstream s;
     
         if (s << i) { cout << "String: " << s.str(); }
    
         return 0;
    
    }
    
     
  5. moses_78

    moses_78 MacUser Mitglied

    Beiträge:
    1.322
    Zustimmungen:
    22
    Registriert seit:
    08.04.2005
    Geht das nicht evtl. mit einem Typecast (kenne mich
    eigentlich nur mit C aus, sollte sich aber bei C++ ge-
    nauso verhalten)?

    Also:
    Code:
    int i = 666;
    strcpy(string, (char *)  i);
     
  6. Spacemojo

    Spacemojo Thread Starter MacUser Mitglied

    Beiträge:
    616
    Zustimmungen:
    21
    Registriert seit:
    16.05.2004
    Danke!
    Die stringstream-Sache funktioniert sehr gut. Ich hab bisher nur gedacht, dass das kein ANSI ist, aber anscheinend doch...

    Tobi
     
  7. GrinderFX

    GrinderFX MacUser Mitglied

    Beiträge:
    6
    Zustimmungen:
    1
    Registriert seit:
    12.04.2009
    Code:
    int i = 666;
    strcpy(string, (char *)  i);

    Der Beitrag ist schon etwas alt aber ich bin über google hier gelandet und kann das wirklich nicht so stehen lassen. Es ist immerhin der 1. Treffer bei google wenn man "c++ int to string" eingibt.

    NEIN, du kennst dich NICHT mit C aus!!!!!!!!!!!!!!!!
    An dem Code stimmt auch sowas von gar nichts und zeigt nur, dass du nicht mal die Basics von C verstanden hast. Das soll jetzt nicht beleidigend sein, nur ist es einfach in den letzten Jahren in Mode gekommen überall irgendwas schreiben zu müssen ohne Ahnung zu haben.

    Egal wohin du es casten möchtest, es kann gar nicht funktionieren, da der pointer auf die Adresse 666 zeigt, was nahezu unwahrscheinlich eine gültige Adresse sein kann. Dazu kommt noch, dass selbst WENN, an der Stelle unwahrscheinlich der Inhalt 666 stehen wird. Warum auch? Und selbst wenn es funktionieren WÜRDE, was nahezu unmöglich ist, dann gibts da noch den Ascii Code. Denn Code int 6 ist nicht gleich Zeichen 6, denn das wäre je nach Zeichencode die 54(ascii).

    Das Programm würde also abstürzen und mehr nicht!

    Als Hinweis für alle:
    Ignoriert den Code von moses_78 einfach!
     
Die Seite wird geladen...

Diese Seite empfehlen