Konvertierung Integer in String?



  • Hi!

    Ich versuche verzweifelt einige Integer in Strings (also Char*) zu konvertieren, aber das Programm stürzt immer nach der Ausgabe des ersten Strings ab, was mache ich falsch?

    #include <stdio.h>
    #include <iostream>
    
    using namespace std;
    
    int main(void)
    {
        int   i[15];
        char* sz[15];
    
        for (int a = 1; a <= 14; a++)
        {
            i[a] = 1;
            cout << a << ": " << i[a] << "\n";
        }
    
        cout << "\n\n";
    
        for (int a = 1; a <= 14; a++)
        {
            sprintf(sz[a],"%d",i[a]);
            cout << sz[a] << "\n";
        }
    
        system("pause");
        return 0;
    }
    

    Ausgabe:

    1: 1
    2: 1
    3: 1
    4: 1
    5: 1
    6: 1
    7: 1
    8: 1
    9: 1
    10: 1
    11: 1
    12: 1
    13: 1
    14: 1
    
    1
    ** ABSTURZ **
    

    Vielen Dank für Eure Hilfe!



  • 1. Das ist kein Ansi-C, sondern C++. Entweder benutzt du dann <cstdio> oder lässt iostream weg, damit es Ansic-C wird.
    2. Benutzt du kein malloc:

    for (int a = 1; a <= 14; a++) 
        { 
            sz[a] = (char*)malloc(2000);
            sprintf(sz[a],"%d",i[a]); 
            cout << sz[a] << "\n"; 
        }
    


  • Sorry, war zu faul das cout noch kurz durch printf zu ersetzen 🙂
    Danke für die Hilfe!

    Auch auf die Gefahr hin jetzt geschlagen zu werden weil falsches Forum:
    Wie würde eine entsprechende Konvertierung in C++ aussehen? Will dafür jetzt nicht extra einen neuen Thread im anderen Forum eröffnen.





  • Der Kunde dankt, sowas habe ich gesucht 🙂


Anmelden zum Antworten