C++ Switch anweisung / String



  • Hi,

    habe gerade nen kleines Programm geschrieben.

    char a[5];

    switch (nPos)
    {
    case 1:
    a = 5us;
    case 2:
    a = 10us;
    case 3:
    a = 20us;
    case 4:
    a = 50us;
    case 5:
    a = 100us;
    case 6:
    a = 200us;
    case 7:
    a = 500us;
    case 8:
    a = 1ms;
    case 9:
    a = 1,25ms;
    }

    Wenn ich es kompiliere kommen nur Fehlermeldungen, wie dass ich u,s etc. nicht definiert sind. Wie muss ich a sonst deklarieren damit ich Strings ablegen kann?

    Danke



  • string a;
    
    switch (nPos) 
    { 
    case 1: 
        a = "5us";
        break;
    case 2: 
        a = "10us";
        break;
    case 3: 
        a = "20us"; 
        break;
    case 4: 
        a = "50us"; 
        break;
    case 5: 
        a = "100us"; 
        break;
    case 6: 
        a = "200us"; 
        break;
    case 7: 
        a = "500us"; 
        break;
    case 8: 
        a = "1ms"; 
        break;
    case 9: 
        a = "1,25ms"; 
        break;
    }
    

    Falls Du keine strings verwenden möchtest, dann nimmst Du strcpy und vergrößerst Dein char-array...



  • Jimbo schrieb:

    ...

    Zu dem bereits beantworteten, vielleicht noch zum Merken ein paar Dinge:

    12345 ==> ist eine Zahl
    'a'   ==> einzelner Buchstabe
    "abc" ==> 0-Terminierter String (insgesamt 4 Zeichen: 'a', 'b', 'c', '\0').
    

    cu André



  • Hi,

    Danke für eure Postings. Hat auch soweit geklappt. Leider bin ich ein relativer Newbie auf dem Gebiet. Wenn ich jetzt die Ausgabe mache kommt immer (NULL), kann mir einer sagen warum das so ist?

    std:: string a;
    switch (nPos)
    {
    case 1:
    a = "5us";
    break;
    case 2:
    a = "10us";
    break;
    case 3:
    a = "20us";
    break;
    case 4:
    a = "50us";
    break;
    case 5:
    a = "100us";
    break;
    case 6:
    a = "200us";
    break;
    case 7:
    a = "500us";
    break;
    case 8:
    a = "1ms";
    break;
    case 9:
    a = "1,25ms";
    break;
    }
    m_EditTime.Format("%s",a);
    UpdateData(FALSE);

    Muss ich was an meiner Formatierung ändern?
    Danke!



  • Du benutzt einen Strign und format erwartet char*.
    Mit

    m_EditTime.Format("%s",a.c_str());
    

    müsste es funktionieren.

    Und benutze bitte die C++-Code-Tags



  • Jepp, das wars. Danke.


Anmelden zum Antworten