Charstellen addieren



  • for(i = 0; i <= 7; i++)
    	{
    		zwisch = Buffer2[i];
    		zwischen = zwischen + zwisch;
    	}
    

    Buffer2 ist ein Char...
    zwischen und zwisch sind ints.
    Er soll halt die einzelnen "Stellen" des chars addieren, z.b. ist Buffer = 00000001. Dann soll er rechnen 0 + 0 + 0 + [..] +1 = 1

    Danke schonmal im Vorraus

    Edit: achja, mein code oben tut nicht, sonst wär ich ja nicht hier 🙂



  • habe gerade gemerkt das der die ascii codes addiert.... wie "stellt man das ab"?


  • Administrator

    brauchst du sowas?

    CString str = ""
    /*
    Irgendwie und irgendwas in str reinschreiben holen usw.
    */
    int nResult = 0;
    for(int i = 0; i < str.GetLength(); i++)
    {
        nResult += atoi(str[i]);
    }
    

    atoi verwandelt ein Buchstabe in einen Integer. Also dann wird aus "1" auch wirklich 1. Aus "2" 2 usw. ^^

    Kannst dir dann auch mal in der MSDN nach atoi suchen. Du kannst anstatt CString natürlich auch ein char cr[irgendeinegrösse] verwenden. Aber da wir in der MFC Abteilung sind und ich noch was MFC reinbringen wollte, habe ich nun ein CString verwendet ^^

    Grüssli



  • gibs da auch noch eine andere lösung? irgendwas mit einem ->%<- sowas wie %d ....?



  • Szill schrieb:

    for(i = 0; i <= 7; i++)
    	{
    		zwisch = Buffer2[i];
    		zwischen = zwischen + zwisch;
    	}
    

    Buffer2 ist ein Char...
    zwischen und zwisch sind ints.
    Er soll halt die einzelnen "Stellen" des chars addieren, z.b. ist Buffer = 00000001. Dann soll er rechnen 0 + 0 + 0 + [..] +1 = 1

    so könnts gehen:

    for(i = 0; i <= 7; i++)
    {
       zwischen = zwischen + Buffer2[i] - '0';
    }
    


  • Ah, sehr geil. Danke!


Anmelden zum Antworten