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 !


Anmelden zum Antworten