zahl umrechnen
-
Hallo.
zeit_zwischen[0]=(int(umrechnen/10)); zeit_zwischen[1]=int(umrechnen-(int(umrechnen/10))*10 );in umrechnen ist die Uhrzeit in Stunden.
zeit_zwischen ist ein char [2] und das muß so bleiben.Wenn es zwischen 0 bis 9 Uhr ist, dann ist umrechnen gleich 0 bzw die erste zahl von umrechnen, ich brauche aber das zeichen 0 in zeit_zwischen stehen.
Wie geht das richtig ?
-
hallo.
erstmal empfehle ich dir, den Modulo-Operator "%" zu benutzen, statt deiner int(umrechnen/10)-Konstruktion (einfach mal in der Hilfe nachschlagen).
Deinem zeit_zwischen[0] kannst du dann nach entsprechendem Test einfach '0' zuweisen:
if( umrechnen%10 == 0 ) zeit_zwischen[0] = '0';und so ähnlich kannst du das mit deiner zweiten Stelle ja dann auch machen.
nacht,
oli
-
Ich formuliere mal mein Problem um.
Auf einer INT Variablen ist die uhrzeit (stunden) zwischen 0 bis 9 uhr und diese Zahl soll auf ein char feld [4] wobei die
feld[0] = '0';und die anderen stunden auf
feld[1]= char (variable); // das geht aber so nicht.wie geht das richtig ?
Der Rest des FELDES darf nicht überschrieben werden.
-
ungefähr so?
zeit_zwischen[4]=IntToStr(umrechnen%10)[1];habe nicht getestet und auch nicht lange überlegt...
probier es mal aus..[edit] gehe von
int umrechnen char zeit_zwischen[]aus.. [/edit]
-
zeit_zwischen[4]=IntToStr(umrechnen%10)[1]; // warum ist das FELD [1] da ?
-
Feld [1] um den 1. Char aus dem String zu bekommen.
***
Es geht aber vielleicht auch so:[cpp]#include <stdio.h>
int i=23;
char ch[4];
sprintf(ch,"%4d",i);
for(int j=0;j<4;j++)
if( ch[j]==' ' )
ch[j]='0';
/Der Breitenbezeichner(hier 4) legt die minimale Länge des Feldes für die Konvertierung fest.
Ist der resultierende String kürzer als die minimale Feldlänge, wird er mit Leerzeichen aufgefüllt.
Per Vorgabe werden die Leerzeichen vor dem Wert eingefügt, um eine rechtsbündige Ausrichtung zu erreichen./[/cpp]das sollte nun aber wirklich funktionieren

der oli
-
Chris233 schrieb:
zeit_zwischen[4]=IntToStr(umrechnen%10)[1]; // warum ist das FELD [1] da ?zeit_zwischen ist ein char -> max 2 zeichen
IntToStr(..) gibt ein AnsiString -> (unendlich) viele zeichen
mit ..[1] hole ich mir einfach den ersten Buchstabe raus.wie gesagt habe nicht lange rumstudiert..