string wert zuweisen

masda

Grünschnabel
Hi @all
Ich möchte meine eigene strcat funktion schreiben. Soweit so gut wie es grob funktioniert weiß ich schon, das Problem ist ich muss einem string einen Wert zuweisen und so wie ich es versuche klappt es nicht :confused: . Kann mir jemand einen Tip geben?
Hier ein teil meines Code:(Meinen String text habe ich mit char text [80]=" "; deklariert)
Code:
char rutine (float zahl)
{

char wort[80];

izahl = (int)zahl;									//Cast von float in int
	itoa(izahl,szahl,10);
	
	for (i=0;szahl[i]!=0;i++)
	{
		
		switch(szahl[i])
		{
		case '1':
			strcpy(wort,'eins-');	// in den string Wort muß das wort eins rein        
			strkat(wort,text);		// aber wie
			break;
 
Ich verstehe nicht ganz:

Code:
strcpy(wort,"eins-");

Sollte deinem Vorhaben doch entsprechen oder hab ich da was falsch verstanden?
 
Uebrigens werden in C Nachkommestellen von einem Integer nicht umsonst abgeschnitten.

Hier ein einfacherer Code, um alle Ziffern der Zahl auszuwerten (ita fuer soetwas zu benutzen ist sehr unelegant):
Code:
int num = 12345;

do {
    printf("%d\n", num % 10);
} while (num /= 10);
 
@RedWing
Ja ich verstehe das auch nicht eigentlich sollte es funktionieren aber der Compiler meckert und sagt das ich die const wort[80] nicht in char konvertieren kann und was er damit will hab ich nicht verstanden. :confused: :confused:
 
Wenn es ein const char ist dann mach halt die brutale tour und caste ihn dementsprechend....

Code:
strcpy((char*)wort, "hallo");

Gruß

RedWing
 
Code:
char rutine (float zahl)
{
Hier koennte der erste Fehler sein! Dein Programm ist ja nicht ganz vollstaendig, aber ich nehme mal an du gibst Wort als Return zurueck dann must du aber
Code:
char *rutine(float zahl)
schreiben. Du musst es als pointer angeben, da eigentlich auch wort ein pointer auf den ersten Buchstaben deines Strings ist. wort ist aber auf keinem Fall vom Typ char.

Code:
char wort[80];

izahl = (int)zahl;									//Cast von float in int
	itoa(izahl,szahl,10);
Hast du izahl und szahl irgendwo deklariert?
Code:
	for (i=0;szahl[i]!=0;i++)
ein String endet mit '\0' nicht mit 0.
Code:
	{
		
		switch(szahl[i])
		{
		case '1':
			strcpy(wort,'eins-');	// in den string Wort muß das wort eins rein
'eins-' -> "eins-"
Code:
			strkat(wort,text);		// aber wie
			break;
 
RedWing hat gesagt.:
Wenn es ein const char ist dann mach halt die brutale tour und caste ihn dementsprechend....

Code:
strcpy((char*)wort, "hallo");

Gruß

RedWing
wenn er es wie geschrieben deklariert hat, sollte sowas nicht notwendig sein, und man sollte einem AAnfaenger dann auch nicht solche tipps geben.
 
HI @all
Ich weiß wo mein Fehler liegt. :) Ist ein dummer Fehler :) . Ich hab im Funktions Prototypen vergessen den char als Feld anzugeben. Sorry war wohl etwas spät als ich den Code geschrieben habe. Danke für Eure Mühe. Übrigens sollten wir das problem ohne Pointer lösen, da wir die erst heute im Unterricht hatten.
mfg masda
 
Zurück