chars ?
-
hallo alle zusammen ! also ich brqauche unbedingt eure hillfe !
danke ! also mein problem ist dieses:
int calcul = ((string1[a] - '0') * (string2[b] - '0'));
char char_calc = (char)calcul+'0';
strcat(prod_temp, &char_calc);aus 2 schleifden musltipliziere ich zahlen aus 2 strings ... dann wandele ich diese um in int, und nachher wierder in chars !
ABER : wie kann ich jetzt dieses umgewandeltes produkt an eine andere char kette anhangen ? wie geht das ? bei mir kommen nur errors ! und ich bracuhe di geaue laenge nachher von prod_temp !
bitte helfen ! ich verzweifele so langsam ...
danke !
-
Du brauchst wirklich Hilfe: www.Duden.de
Furchtbar
-
also du bist wirklich erste sahne ! klugmeister ! anstatt ordentlich zu helfen, kritisiertst du nur herum, um zu sagen, dass ein paar schreibfehler drin stehn ! vielleicht ist es auch moeglich, dass nicht jedermann aus deutschland kommt ...
-
Jedermann gewiss nicht.
Aber Du ganz bestimmt.
-
du klugmeister ! kannst du denn auch ueberhaupt helfen, anstatt nuer herum zu maulen ??
-
Ich sagte dir doch schon, wo du Hilfe findest.
-
also ich habe keine zeit jetzt, kannst du mier nicht helfen ?? oder verstehst du die frage nicht ? oder, wenn du nicht helfen willst, dann klaere micht bitte ueber jeden schreibfehler oder deutsch fehler auf, ok ??
-
und um nochmal zu betonen : ich komme NICHTT aus deutschland, und wenn ich dich fragen wuerde, franzoesisch oder englisch, spanisch oder italienisch zu reden, dann koennte ich genau das selbe mit dier tun !
-
vielleicht hilf dir die funktion strcat() weiter
-
ja, habe ich ja versucht, mit strcat, aber leider fuegt er nicht genau das hinzu, was ich will ! er fuegt nur so \377 und so wietre hinzu ... und das bedeutet, dass nach die lange von prod_temp anders ist als erwartet !
-
huhu,
schau dir mal atoi und sprintf an.
und ignoriere solche leute wie oh_mann einfach.
-
Ja ok,
also ich verstehe deine Frage wirklich nicht.int calcul = ((string1[a] - '0') * (string2[b] - '0')); char char_calc = (char)calcul+'0'; strcat(prod_temp, &char_calc);
Das kann doch nicht funktionieren, du multiplizierst zwei Ziffern. OK,
aber es ist doch warscheinlich, dass das Ergebnis auch 2 Stellig wird.Und den Satz mit der Schleife hab ich nun überhaupt nicht verstanden, was du meinst.
-
also, ich weiss nicht recht wi ich das anstllen soll ! ich habe zewei zahlen, die gegebe sin : zum Beispiel 123 und 321 ! ich muss jetzt jede zahl mit jeder multiplizieren !
aber was tun ? so habe ich sie in ein char-array gesetzt, und so kann ich dann jede zahl einzeln multiplizieren ! aber dann will ich anchher auch, dass dann das resultat als char array ausgegeben wird ! und was soll ich denn tun, wenn es groesser als 10 ist ?
danke im voraus
und @oh_mann -> sorry !
-
Wie xroads42 schon sagte, mit den beiden Funktionen kannst du hin- und herwandeln.
int main() { char Zahl1[4] = "123"; char Feld[256]; int Nummer1; Nummer1 = atoi(Zahl1); sprintf(Feld, "%u", Nummer1); printf("Kontrolle:%s\n", Feld); }
-
gruebel schrieb:
also mein problem ist dieses:
char char_calc = ...;
strcat(prod_temp, &char_calc);strcat() verlangt zwei strings...
Unten habe ich nun Deinen Ansatz zu einem funktionierenden Programm ausgebaut.
#include <stdio.h> #include <string.h> #include <conio.h> int main(void) { int a = 0, b = 0; char string1[16] = "237"; char string2[16] = "656"; char char_calc[3] = ""; // Ergebnis hat max. 2 digits char prod_temp[16] = "Ergebnis: "; int calcul = ((string1[a] - '0') * (string2[b] - '0')); if (calcul > 9) { char_calc[0] = (char) (calcul/10) + '0'; char_calc[1] = (char) (calcul%10) + '0'; char_calc[2] = '\0'; } else { char_calc[0] = (char) calcul + '0'; char_calc[1] = '\0'; } strcat(prod_temp, char_calc); printf("%s", prod_temp); getch(); }
-
gruebel schrieb:
char char_calc = (char)calcul+'0';
strcat(prod_temp, &char_calc);strcat fügt strings aneinander, nicht ein 'char' an einen string. strings enden immer mit einer \0.
wenn dann so:char char_calc[] = {(char)calcul+'0', 0}; strcat (prod_temp, char_calc);
-
gruebel schrieb:
Also, ich weiß nicht recht, wie ich das anstellen soll! Ich habe zwei Zahlen, die gegeben sind: zum Beispiel 123 und 321. Ich muss jetzt jede [Ziffer] mit jeder [anderen Ziffer] multiplizieren! [...] Und was soll ich denn tun, wenn [das Ergebnis] größer als 10 ist?
Ok, ich habe noch die itoa()-Funktionen (und ein return 0, das ich vergessen hatte) hinzugefügt. Was hälts Du davon?
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> int main(void) { int wert1 = 237; int wert2 = 656; int a = 0; int b = 0; char string1[16] = ""; char string2[16] = ""; char char_calc[3] = ""; // Ergebnis hat max. 2 digits char prod_temp[16] = "Ergebnis: "; itoa(wert1, string1, 10); itoa(wert2, string2, 10); int calcul = ((string1[a] - '0') * (string2[b] - '0')); if (calcul > 9) { char_calc[0] = (char) (calcul/10) + '0'; char_calc[1] = (char) (calcul%10) + '0'; char_calc[2] = '\0'; } else { char_calc[0] = (char) calcul + '0'; char_calc[1] = '\0'; } strcat(prod_temp, char_calc); printf("%s", prod_temp); getch(); return 0; }
-
echt super ! @ ein Gast <-- danke vielmals ! wenn ich noch eine frage hab, dann wo mich wenden ??
danke nochmals ...
-
gruebel schrieb:
Wenn ich noch eine Frage hab...
...dann ist dieses Forum bestimmt ein guter Platz dafür. Ich schau wohl in nächster Zeit auch des öfteren mal hier vorbei. (Muss meine C-Kenntnisse wieder etwas auffrischen, und solche "Fingerübungen" sind ganz gut geeignet dafür.).
-
nur eine frage : wie kopiere ich dann diese prod_temp in eine neues array?? denn diese prod_temp entsteht ja in einer schleife, un nach jedem schleifendurchgang wird am ende diee variable prod_temp wieder geloescht ... aber der wert muss erhalten bleiben ! und so will ich den dann in einem "speicher" aufbahren ..
wi geht das ??
danke im voraus !