c Programmieren- Integer/Float wert in ein char Array speichern- wie geht das?
Hallo, ich bin gerade dabei ein Programm zu schreiben, wo ich gerne das Ergebnis, was ein Integer ist, in ein array speichern möchte... aber ich komm nicht drauf wie das geht und im Internet finde ich auch nichts :/ Ich brauch genau diesen Weg und kann keine andere Lösung nehmen bzw dies umgehen.
Danke im Voraus! :D
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
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;
}
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
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] ...
ja aber das ergebnis soll dann in ein array gespeichert werden und das versteh ich nicht :D
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
aber wenn ich ein char array habe? und mein Ergebnis ein integer ist?
Meinst du Casting?
https://www.c-howto.de/tutorial/variablen/typumwandlung/
char str[] = { "Hallo!\n" };
Wird dieser String in seine einzelnen Zeichen zerlegt, ergibt sich die Zeile:
/* gleichwertig zu "Hallo!\n" */
char str[] = { 'H', 'a', 'l', 'l', 'o', '!', '\n', '\0' };
http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/011_c_arrays_011.htm
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;
```
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
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/
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?
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.
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?
Nachdem du es gecastet hast kannst du es wie ein regulären Char in den array packen.
ich habe mein Programm ausführlicher unten geschrieben bei dem Benutzer safur das mit dem Bruch.... das brauch ich
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