int -> char -> array ?
-
hallo
hab folgendes Problem :. . . char matrix[size][size]; . . void raw_matrix() { int x,y, zahlX, zahlY; for (x=0; x<size; x++) { for (y=0; y<size; y++) { matrix[x][y]='.'; zahlX=x%10; zahlY=y%10; if (x>0 && y==0) { switch (zahlX) { case 0: matrix[x][y]='0';break; case 1: matrix[x][y]='1';break; case 2: matrix[x][y]='2';break; case 3: matrix[x][y]='3';break; case 4: matrix[x][y]='4';break; case 5: matrix[x][y]='5';break; case 6: matrix[x][y]='6';break; case 7: matrix[x][y]='7';break; case 8: matrix[x][y]='8';break; case 9: matrix[x][y]='9';break; } } if (y>0 && x==0) { switch (zahlY) { case 0: matrix[x][y]='0';break; case 1: matrix[x][y]='1';break; case 2: matrix[x][y]='2';break; case 3: matrix[x][y]='3';break; case 4: matrix[x][y]='4';break; case 5: matrix[x][y]='5';break; case 6: matrix[x][y]='6';break; case 7: matrix[x][y]='7';break; case 8: matrix[x][y]='8';break; case 9: matrix[x][y]='9';break; } } } } matrix[0][0]='/'; } . . .
Ich würd gern das Ergebnis von zahlX bzw zahlY in das Array schreiben, und zwar als string. Es funktioniert zwar mit der switch-Anweisung, aber das ist mir einfach zu lang. Habs schonmal mit matrix[x][y]=(char)zahlX versucht, aber da hat er mir nur Mist ausgegeben
Wäre dankbar für jede Hilfe.
-
also wenn ich das richtig verstehe du willst im Grund:
char a; int b; a = '?' b = a%10;
und jetzt soll im grunde a = b da hin nur halt das a nicht b sondern die entsprechende zahl als ascii zeichen enthalten soll.
Ganz einfach: '0' ist im der ascii-tabelle 48. Von daher ist das richtige:a = b+48;
-
48 ist käse!
was wenn 0 zufällig mal nicht 48 ist?
oder was wenn jemand zufällig den ascii zeichensatz nicht auswendig kann?naja, der ansatz ist richtig, aber statt 48 schreibt man '0'
-
Original erstellt von Shade Of Mine:
48 ist käse!jo.
was wenn 0 zufällig mal nicht 48 ist?
kommt nicht vor.
oder was wenn jemand zufällig den ascii zeichensatz nicht auswendig kann?
also mindestens 10, 13, 27, 32, 48, 65 und 97 muß er kennen, wenn nicht wird er gefeuert.
naja, der ansatz ist richtig, aber statt 48 schreibt man '0'
richtig. ich hab leider vergessen, warum das so war.
-
Original erstellt von volkard:
naja, der ansatz ist richtig, aber statt 48 schreibt man '0'
richtig. ich hab leider vergessen, warum das so war.Weil man Programme für Menschen schreibt, die zufällig auch von Computern verstanden werden.
-
Weil man Programme für Menschen schreibt, die zufällig auch von Computern verstanden werden
Etwas ähnliches wollte ich auch gerade schreiben
Naja, dann schreibe ich jetzt das:
richtig. ich hab leider vergessen, warum das so war.
Dafür bist du mit dem Feuern aber recht flott dabei
-
dann zeig ich mal, was ich gelernt hab, damit ich nicht gefeuert werde.
die große verbesserung war schon genannt. ich hab nur noch dafür gesorgt, daß unterschiedliche taten auch unterschiedlichen code haben tun.char matrix[size][size]; inline digitToChar(int x) { return x+'0'; } void raw_matrix() { //links oben nen querstrich hinmalen matrix[0][0]='/'; //und x-achse beschriftigen mit endziffern for(int x=1;x<sizex;++x) matrix[x][0]=digitToChar(x%10); //und die hochachse auch tun machen for(int y=1;y<sizey;++y) matrix[0][y]='0'+digitToChar(y%10); //un nu den rest mit punkten vollrotzen for(x=1;x<sizex;++x) for(int y=1;y<sizey;++y) matrix[x][y]='.'; }
-
danke