unsinnige Programmieraufgaben... (C)

grX

Grünschnabel
hiho, sry, dass ich euer Forum mit solch unnützen Dreck zuspam, aber ich komm grad net weiter ^^
die Sache ist folgende: Unser Professor hat uns diese Aufgabe:

1. Integer to String
Schreibe eine Funktion char * IToA(int, char *), die einen beliebigen Inte-gerwert in eine Zeichenkette in folgendem Format umwandelt:
• Keine führenden Nullen
• Keine führenden Leerzeichen
• Vorzeichen geg. am Beginn
• Positives Vorzeichen wird nicht dargestellt
• Kein Tausenderpunkt
• Keine abschließenden Leerstellen
Als Ergebnis wird ein Pointer auf den bereits allokierten String (in minimaler Länge) geliefert.
2. Float to String
Schreibe eine Funktion char * FtoA(float, char *), die einen beliebigen Flo-at-Wert in eine Zeichenkette in normierter Darstellung (z.B. -0.1234e-12, 0.1234e02, ...) umwandelt:
• Vorzeichen der Mantisse geg. am Beginn
• Positives Vorzeichen der Mantisse wird nicht dargestellt
• Keine führenden Leerzeichen (Mantisse)
• Keine abschließenden Leerzeichen
• Mantisse immer zwischen –0.9999 und 0.9999
• Kaufmännisches Runden auf vierte Nachkommastelle der Mantisse
• „e“ ist Trennzeichen zw. Mantisse und Exponent
• Vorzeichen des Exponenten geg. am Beginn
• Positives Vorzeichen des Exponent wird nicht dargestellt
• Exponent ist immer 2 Stellen lang – evtl. mit einer führenden Null („03“)
Auch hier ist das Ergebnis wieder ein Zeiger auf den bereits im rufenden Programm allokierten String.
3. Integer to Binary String
Als Sonderaufgabe bietet sich noch die Konvertierung einer beliebigen Integer-Zahl in dessen binäre Darstellung (als String) an …

soooo...Aufgaben 1 und 3 waren ja kein Problem, aber bei Aufgabe 2 fehlt mir jeder Ansatz..könnt mir da vlt wer helfen?

Hier mal der bisherige src, wie bereits im Titel angegeben, sollte die Lösung in C formuliert sein:

Code:
#include<stdlib.h>
#include<stdio.h>
#include<math.h>


void inttochar(int,int,char*);		//Funktion Integer to Character
void floatochar();			         //Funktion Float to Character
void inttobin(int,int,char*);		//Funkion Integer to Binary

void main()
{
	int zahl,n;
	char* itoc;
	char* btoc;

	printf("Geben Sie eine Zahl ein: ");
	scanf("%i", &zahl);
		
	n=log10(zahl)+1;							/*Anzahl der Stellen von Zahl wird ermittelt*/

	itoc=(char*)malloc((n+1)*sizeof(char));		          /*Speicherplatz allokieren*/
	itoc[n]='\0';								/*\0 wird an das Ende des Strings gehängt*/
	inttochar(n,zahl,itoc);						/*Funktion inttochar wird aufgerufen*/
	printf("Integer in Character: %s\n",itoc);	                  /*Ausgabe von itoc*/
	free(itoc);							         /*Speicherplatz wird freigegeben*/

	n=(log10(zahl))/(log10(2))+1;
	btoc=(char*)malloc((n+1)*sizeof(char));		         /*Speicherplatz allokieren*/
	btoc[n]='\0';								/*\0 wird an das Ende des Strings gehängt*/
	inttobin(n,zahl,btoc);						/*Funktion inttobin wird aufgerufen*/
	printf("Integer in Binaer: %s\n",btoc);		                  /*Ausgabe von btoc*/
	free(btoc);								/*Speicherplatz wird freigegeben*/

}

void inttochar(int n, int zahl, char* itoc)
{
	do
	{
		itoc[--n]=zahl%10+48;
		zahl=floor(zahl/10);		
	}while(zahl!=0);	
}

void inttobin(int n, int zahl, char* btoc)
{
	do
	{
		btoc[--n]=zahl%2+48;		
		zahl/=2;
	}while(zahl!=0);
}

void floattochar()
{

}

danke im Vorraus für die Hilfe, grX
 
Zurück