Aufteilung eines Strings auf ein Array



  • Hallo,
    ich möchte gerne einen String für Programmiertechnische
    Zwecke in einem Array, als Hexa-Dezimalwert speichern.
    Dazu ein kleines Beispiel:

    "evolution"
    >>
    name[0]=0x65;
    name[1]=0x76;
    name[2]=0x6f;
    name[3]=0x6c;
    name[4]=0x75;
    name[5]=0x74;
    name[6]=0x69;
    name[7]=0x6f;
    name[8]=0x6e;
    name[9]=0x00;     // <-----
    name[10]=0x00;    //  der Rest
    name[11]=0x00;   //   muss mit
    name[12]=0x00;  //    0x00 gefüllt
    name[13]=0x00; //     werden :D
    name[14]=0x00;//
    

    Wenn ihr das wüsstet, würde ich euch lieben 😃

    Ich h😡sse diese Komplexen Schleifen, die umwandeln,
    auf ein Array verteilen und Auf Array-Größe Prüfen müssen,
    ich hab das einfach zu selten gemacht und brauch deshalb
    mal ne Vorlage 😉

    Vielen Dank



  • Listing schrieb:

    als Hexa-Dezimalwert speichern.

    Naja du gibst das vllt als Hex-Wert an. Aber intern läuft natürlich alles binär ab. Ist klar oder ?!

    Was meinst du denn nun genau mit:

    [...] einen String für Programmiertechnische
    Zwecke in einem Array, als Hexa-Dezimalwert speichern. [...]

    Welchen String, in welchem Array, welchen Typs ?



  • Hab das mal programmiert,
    hat mich einige Mühe gekostet mit den blöden
    String formaten, dass immer zu konvertieren.
    Bei C++ muss es eben immer umständlich sein 😃

    int _tmain(int argc, _TCHAR* argv[])
    {
    	char *name;
    	name = new char[15];
        const char *nameinput = "evolution";
    	sprintf(name, "%s", nameinput);
    	std::cout<<name<<std::endl;
    	system("pause");
    }
    

    ich möchte jetzt ein array name, mit 15 werten,
    wo die ersten 9 eben evolution (den hex werten der einzelnen Buchstaben)
    und der rest 0x00 entsprechen



  • C++? Sieht so aus:

    #include <string>
    using namespace std;
    
    int main()
    {
        char name[15];
        string input = "evolution";
    
        for(int i = 0; i < 15; ++i)
        {
            if(i < input.size())
                name[i] = input[i];
            else
                name[i] = 0;
        }
    }
    


  • Michael E. schrieb:

    C++? Sieht so aus:

    #include <string>
    using namespace std;
    
    int main()
    {
        char name[15];
        string input = "evolution";
    
        for(int i = 0; i < 15; ++i)
        {
            if(i < input.size())
                name[i] = input[i];
            else
                name[i] = 0;
        }
    }
    

    Tut mir leid, aber strings kann ich garnicht gebrauchen,
    nur char. Iergendwie ist string kein C++ im eigentlichen sinne,
    weil es ja so ein multi-ding ist, das mag ich garnicht 😉

    Geht das nicht mit char?

    Es handelt sich ja in meinem Endprogramm um keine Konsolenapplikation

    EDIT:
    Ok danke hat sich gegessen

    Man kann einfach name[i] ansprechen und der holt sich automatisch das Format dass er brauch (in meinem fall byte) 🙂



  • Listing schrieb:

    Tut mir leid, aber strings kann ich garnicht gebrauchen,
    nur char. Iergendwie ist string kein C++ im eigentlichen sinne,
    weil es ja so ein multi-ding ist, das mag ich garnicht 😉

    Was zur Hölle ist ein Multi-Ding? BTW ist std::string in den meisten Fällen empfehlenswerter als char *.

    Geht das nicht mit char?

    Natürlich.

    Es handelt sich ja in meinem Endprogramm um keine Konsolenapplikation

    Und?



  • Listing schrieb:

    Iergendwie ist string kein C++ im eigentlichen sinne, [...]

    *Grinz* ... std::string ist C++ pur :p



  • Listing schrieb:

    Geht das nicht mit char?

    geht 😉

    int main()
    {
      static char name[15] = "evolution";
    }
    


  • Listing schrieb:

    ...
    Tut mir leid, aber strings kann ich garnicht gebrauchen,
    nur char....

    dafür gibt es c_str() bei std::string.

    Gruß,

    Simon2.



  • main() {
    
    char in[] = "evolution";
    char out[15] = {0,};
    strcpy(out,in);
    }
    

Anmelden zum Antworten