Integer einem char zuweisen

Heinzi1991

Erfahrenes Mitglied
So ein kleines aber doch feines problem hab ich noch!

Also ich lese von einer binär datei mehrer daten ein, die ich in einem integer umgewandelt habe ein.

Für ein beispiel: ich habe 27 zeichen eingelesen und in ein char[] gespeichert! Nun sind in diesem array lauter zahlen von 0 bis 9.

Ich will jetzt das jede 0 ein punkt wird und jede 9 ein A und jede 6 ein R! Wie kann ich das bewerkstelligen!
 
Moin,

in dem Du aus jeder '0' einen Punkt, aus jeder '9' ein 'A' machst usw. ... :confused:

Was ist denn Dein konkrete Frage ?
Wie sieht Dein bisheriger Ansatz aus ?

Gruß
Klaus
 
Ich würde das Ganze mit ner Map machen hab allerdings ewig kein C++ mehr programmiert :)
Aber ungefähr so sollte es aussehen:
C++:
#include <cstdio>
#include <map>
#include <string>
#include <iostream>

using namespace std;

typedef std::map<char, char> TStrStrMap;
typedef std::pair<char, char> TStrStrPair;

int main(int argc, char *argv[])
{
    TStrStrMap tMap;

    tMap.insert(TStrStrPair('0', '.'));
    tMap.insert(TStrStrPair('1', '!'));
    tMap.insert(TStrStrPair('2', '"'));
    tMap.insert(TStrStrPair('3', '§'));
    tMap.insert(TStrStrPair('4', '$'));
    tMap.insert(TStrStrPair('5', '%'));
    tMap.insert(TStrStrPair('6', '&'));
    tMap.insert(TStrStrPair('7', '/'));
    tMap.insert(TStrStrPair('8', '('));
    tMap.insert(TStrStrPair('9', ')'));

    char daten[] = "02345065091606.51460.65410.0650.";
    int i;
    printf("Eingegangendes Array:\n");
    for(i = 0; i < 27; i++)
    {
        printf("%c",daten[i]);
    }
    printf("\nUmgewandeltes Array:\n");
    for(i = 0; i < 27; i++)
    {
        if(tMap[daten[i]] != '\000')
        {
            daten[i] = tMap[daten[i]];
        }
        printf("%c",daten[i]);
    }
    std::getchar();
    return 0;
}

@Edit:
Mit Integer sehe das Ganze dann wie folgt aus:
C++:
#include <cstdio>
#include <map>
#include <string>
#include <iostream>

using namespace std;

typedef std::map<int, char> TStrStrMap;
typedef std::pair<int, char> TStrStrPair;

int main(int argc, char *argv[])
{
    TStrStrMap tMap;

    tMap.insert(TStrStrPair(0, '.'));
    tMap.insert(TStrStrPair(1, '!'));
    tMap.insert(TStrStrPair(2, '"'));
    tMap.insert(TStrStrPair(3, '§'));
    tMap.insert(TStrStrPair(4, '$'));
    tMap.insert(TStrStrPair(5, '%'));
    tMap.insert(TStrStrPair(6, '&'));
    tMap.insert(TStrStrPair(7, '/'));
    tMap.insert(TStrStrPair(8, '('));
    tMap.insert(TStrStrPair(9, ')'));

    int daten[] = {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7};
    char cdaten[27];
    int i;
    printf("Eingegangendes Array:\n");
    for(i = 0; i < 27; i++)
    {
        printf("%i",daten[i]);
    }
    printf("\nUmgewandeltes Array:\n");
    for(i = 0; i < 27; i++)
    {
        if(tMap[daten[i]] != '\000')
        {
            cdaten[i] = tMap[daten[i]];
        }
        printf("%c",cdaten[i]);
    }
    std::getchar();
    return 0;
}
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück