2 char-Elemente in 1



  • tach-chen......

    und zwar häng ich an folgenden problem. ich habe nen char string der 12 zeichen groß ist. alle elemente sind zahlen. jetzt will ich immer zwei elemente in eins packen, so dass am ende ein neues array mit nicht mehr 12 elementen da ist, sondern nur noch mit 6. sprich ungefähr so: 0|2|3|4|4|8|1|0|2|6|2|3 soll am ende so aussehen 02|34|48|10|26|23

    die striche stehen jetzt mal für die einzelnen elemente...

    am besten wäre es noch, wenn man das gleich in int konvertieren könnte, muss aber nicht sein.

    hier mal mein quelltext, in dem ich das benötige:

    #include <iostream>
    #include <fstream>
    #include <string>
    #include <stdlib.h>
    #include <stdio.h>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    	// Eingabe Lottozahlen
    	/*
    	char ziehung[12];
    	cout<<"Eingabe Lottozahlen:"<<endl;
    	for(int b=0; b<12; b++)
    	{
    		cin >>ziehung[b];
    	}
    	*/
    
        char     filename[128]="lotto.txt";
        ifstream file;
        char     zeile[1024];
    	string   lzeilen[12];
    
        // Datei öffnen
        file.open(filename, ios::in);
    
        if (file.good())
        {
            file.seekg(0L, ios::beg);
    
            for (int i=0;! file.eof();i++)
            {	
    			file.getline(zeile, 1024);
    			lzeilen[i]=zeile;
            }
        }
        else
        {
            cout << "Datei nicht gefunden." << endl;
        }
    
    	char charArray[17][12];
    	char tmpcharArray[12][12];
    	char neucharArray[6][12];
    
    	// String in 2 dim char-Array konvertieren
    	for(int j=0; j<12; j++)
    	{
    		strcpy(charArray[j],lzeilen[j].c_str());
    	}
    
    	// Leerzeichen entfernen
    	for(j=0; j<12; j++)
    	{
    		for(int z=0, a=0; z<17; z++)
    		{
    			if(charArray[j][z] == ' ')
    			{
    			}
    			else
    			{
    				tmpcharArray[j][a]=charArray[j][z];
    				a++;
    			}
    		}
    	}
    
    	// Ausgabe
    	cout<<endl<<endl;
    
    	for(j=0; j<12; j++)
    	{
    		for(int z=0; z<12; z++)
    		{
    			cout<<tmpcharArray[j][z];
    		}
    		cout<<endl;
    	}
    	cout<<endl;
    
        return 0;
    }
    
    /*
    steht in der lotto.txt:
    
    11 15 25 37 38 47
    11 16 20 26 29 45
    03 18 20 30 46 49
    02 12 15 25 31 49
    01 03 05 07 41 48
    01 13 14 26 31 45
    02 07 09 11 20 27
    02 12 16 20 27 28
    07 18 21 22 44 45
    06 07 29 33 36 44
    01 12 22 33 39 40
    01 07 08 34 37 41
    */
    


  • Ein char kann doch nur ein Zeichen speichern!
    Was du machen kannst, ist 2 chars in einen short o.Ä zu schreiben, ungefähr so:

    char c[2] = {'a', 'b'};
    short s = (c[0] << 8) + (c[1]);
    

Anmelden zum Antworten