c Programmieren- Integer/Float wert in ein char Array speichern- wie geht das?

2 Antworten

Was hat die Frage mit der Überschrift zu tun?

Du weist dein Ergebnis einfach deinem int-Array an der Stelle x zu.

/* array1.c */
#include <stdio.h>
#include <stdlib.h>

int main(void) {
   int i[5];     /* Array mit 5 int-Elementen */

   /* Wertzuweisungen des Arrays */
   i[0] = 5;
   i[1] = 100;
   i[2] = 66;
   i[3] = 77;
   i[4] = 1500;

   /*Ausgabe der einzelnen Array-Elemente*/
   printf("Array-Element i[0]= %d\n", i[0]);
   printf("Array-Element i[1]= %d\n", i[1]);
   printf("Array-Element i[2]= %d\n", i[2]);
   printf("Array-Element i[3]= %d\n", i[3]);
   printf("Array-Element i[4]= %d\n", i[4]);
   return EXIT_SUCCESS;
}

http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/011_c_arrays_002.htm

student255 
Fragesteller
 31.08.2020, 19:41

genauer gesagt habe ich das ergebnis in einer anderen Funktion berechnet und mochte dieses Ergebnis in einer anderen Funktion wieder verwenden wo ich nur das in ein array speicher. Das was du gezeigt hast, weiß ich ja natürlich

0
safur  31.08.2020, 19:44
@student255

return und den Rückgabewert in deiner main verwenden.

wie hier

#include<stdio.h>

int addiere(int summand1, int summand2) {
	return (summand1 + summand2);
}

int main() {
	int summe = addiere(3, 7);
	printf("Summe von 3 und 7 ist %d\n", summe);
	return 0;
}

https://www.c-howto.de/tutorial/funktionen/

0
chilly10  31.08.2020, 19:45
@student255

dann müsstest du das Ergebnis schmeißen...also mit return werfen, wobei der return wert dann nen int ist und das in der Funktion an die andere übergeben

0
chilly10  31.08.2020, 19:43

falls vorher noch geprüft werden soll, ob die Stelle x im Array empty ist, kann man mit ner Schleife durch den Array i=0; i<array.length;i++...

If array[i] ...

1
student255 
Fragesteller
 31.08.2020, 19:46
@chilly10

ja aber das ergebnis soll dann in ein array gespeichert werden und das versteh ich nicht :D

0
safur  31.08.2020, 19:46
@student255
i[0] = addiere(3, 7);

So als Beispiel.

Hast du mal deinen Code

1
chilly10  31.08.2020, 19:48
@student255

den Wert übergibst du... Wenn du eine Methode hast, und du willst in dieser Methode mit einem übergebenen Wert arbeiten...wie machst Du das?

type methodenname(type ubergebenerWertMitDemGearbeitetWird);

zum Bsp

Und die andere Methode...

int anderermethodenname()

{.....

Return zahl

;} wirft den Wert so

1
student255 
Fragesteller
 31.08.2020, 19:49
@safur

aber wenn ich ein char array habe? und mein Ergebnis ein integer ist?

0
student255 
Fragesteller
 31.08.2020, 20:00
@safur

ja aber guck mal ich möchte doch mein Integer Ergebnis in my char Array speichern, das will ich die ganze zeit :D ich kann doch nicht einfach das so machen:
```
int ergebnis = 2;

char array[100];

array[0] = ergebnis;
```

0
safur  31.08.2020, 20:11
@student255

So oder wie 😉

#include <stdio.h>

int main(void)
{
   char c[100];
   c[0]=5;
   return 0;
}
0
student255 
Fragesteller
 31.08.2020, 20:18
@safur

ich schreibs jetzt einfach mal ausführlicher :D Mein Programm soll ein Bruch berechnen: das habe ich schon gemacht. jetzt soll ich eine methode mit zwei Parameter schreiben:

void print(bruch a, char array[100]){

wo ich den Bruch als gleitkommazahl ins char array reinschreibe.

meine datenstruktur für den bruch sieht so aus:

struct bruch{

int z; // zaehler

int n; //nenner

}

das ist das was ich brauche :D

0
safur  31.08.2020, 20:55
@student255

Wie sieht dein Code jetzt aus?

// C program to illustrate 
// application of gcvt() 
#include <stdio.h> 
// called function 
void divide(float x, float y) 
{ 
   char buffer[20]; 
   float z; 
   z = x / y; 
   // printing normal division result 

   printf("%f", z); 
   gcvt(x / y, 10, buffer); 

   // printing division result as stored directly in string 
   printf("\n%s\n", buffer); 
} 
int main() 
{ 
   // taking input 
   float x = 2.0f, y = 3.0f; 

   // calling function for division 
   divide(x, y); 

   return 0; 
} 

https://www.geeksforgeeks.org/gcvt-convert-float-value-string-c/

0
student255 
Fragesteller
 31.08.2020, 21:17
@safur

jawohl es hat funktioniert! aber bei mir kommt noch die Meldung wenn ich es kompiliere mit -Wall:

warning: implicit declaration of function ‘gcvt’

wie bekomm ich es weg?

0
safur  31.08.2020, 21:58
@student255

steht doch oben

gcvt (float value, int ndigits, char * buf);
0

Warum willst du den ein char array und keinen int array? Warum einen würfel in ein rundes loch stopfen?

Wenn du einen int zu einem char machen willst musst du explizit casten.

student255 
Fragesteller
 31.08.2020, 19:43

weil mir dieser zur verfügung gestellt wurde. Klar mit einem int array wäre dies leichter :D aber es muss ein char array sein.
(char) ergebnis; so casten? wie pack ich es dann aber in ein array?

0
jort93  31.08.2020, 20:29
@student255

Nachdem du es gecastet hast kannst du es wie ein regulären Char in den array packen.

0
student255 
Fragesteller
 31.08.2020, 20:38
@jort93

ich habe mein Programm ausführlicher unten geschrieben bei dem Benutzer safur das mit dem Bruch.... das brauch ich

0