Archiv für Funktions-Definitionen



  • Andersrum:

    Könnt ihr mir sagen, warum folgender Code nicht funktioniert?
    edit:

    #include <stdio.h>
    
    void strcpy_new(char* t, const char* s)
    
    void main(void)
    {
    	char text[] = "Hallo Welt", string[] = "ollaH";
    	strcpy_new(text, string);
    	puts(text);
    	system("pause");
    }
    
    /*strcpy_new*/
    void strcpy_new(char* t, const char* s)
    {	
    	int i = 0;
    	for (; s[i] != '\0'; i++)
    	t[i] = s[i];
    }
    

  • Mod

    Danke, dass du uns auf eine wilde Websuche schickst, anstatt einfach gleich die richtige Frage zu stellen 😡 .

    Was ist das Problem? Es wird Hallo durch ollaH ersetzt. Soll zusätzlich noch abgeschnitten werden? Dann setz eine Nullterminierung!



  • SeppJ schrieb:

    Danke, dass du uns auf eine wilde Websuche schickst, anstatt einfach gleich die richtige Frage zu stellen 😡 .

    Was ist das Problem? Es wird Hallo durch ollaH ersetzt. Soll zusätzlich noch abgeschnitten werden? Dann setz eine Nullterminierung!

    Entschuldige bitte, aber meine anfängliche Frage ist damit nicht hinfällig.
    Im Sinne einer spezifischen Lösung habe ich dann halt mein momentanes Problem gepostet; hinsichtlich noch kommender Fragen wäre eben jenes Archiv sehr sinnvoll, aus meiner Sicht.

    Da für die die Funktion banal erscheint, funktioniert sie so, wie sie eine Seite vorher steht bei dir? Ja?
    Bei mir kommen nämlich Fehlermeldungen und ich weiss nich was ich ändern soll..

    Danke für dein Verständnis.

    PS:

    1>------ Build started: Project: Test, Configuration: Debug Win32 ------
    1>Compiling...
    1>Testsource.c
    1>d:\daten\z002nweb\inout\inout\testsource.c(7) : error C2085: 'main' : not in formal parameter list
    1>d:\daten\z002nweb\inout\inout\testsource.c(7) : error C2143: syntax error : missing ';' before '{'
    1>d:\daten\z002nweb\inout\inout\testsource.c(11) : warning C4013: 'system' undefined; assuming extern returning int
    1>d:\daten\z002nweb\inout\inout\testsource.c(16) : error C2084: function 'void strcpy_new(char *,const char *)' already has a body
    1>        d:\daten\z002nweb\inout\inout\testsource.c(3) : see previous definition of 'strcpy_new'
    1>Build log was saved at "file://d:\Daten\z002nweb\inout\inout\Debug\BuildLog.htm"
    1>Test - 3 error(s), 1 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
    

  • Mod

    Ach so, die vielen Syntax- und Sprachfehler habe ich weggemacht, da ich annahm, dass du die Funktion per Hand abgeschrieben hast und einen sehr toleranten Compiler benutzt.

    Die Fehler sind:
    Zeile 3, Semikolon fehlt
    Zeile 6, Rückgabetyp von main ist int.
    Zeile 11, benötigt stdlib.h

    Es wäre sehr nützlich, wenn du in Zukunft genaue Fragen stellst, denn "funktioniert nicht" hilft nicht weiter.



  • Außerdem wird der entstandene String nicht terminiert.
    Vor Funktionsende noch ein

    t[i] = 0;
    

    sollte das nachholen.



  • Danke

    SeppJ schrieb:

    Es wäre sehr nützlich, wenn du in Zukunft genaue Fragen stellst, denn "funktioniert nicht" hilft nicht weiter.

    Woher soll ich vorher wissen wo der Fehler liegt, wenn das genau meine Frage wäre?



  • Gast0815 schrieb:

    Außerdem wird der entstandene String nicht terminiert.
    Vor Funktionsende noch ein

    t[i] = 0;
    

    sollte das nachholen.

    Hm, warum aufeinmal nicht mehr '\0'?

    edit: Ok, habs grad getestet, geht beides 🙂



  • '\0' als Escape-Sequenz entspricht dem ASCII-Wert 0.
    Genauso wie 'A' intern als Char-Wert 65 gespeichert wird.

    ('\0' == 0)
    

  • Mod

    jizzer schrieb:

    Danke

    SeppJ schrieb:

    Es wäre sehr nützlich, wenn du in Zukunft genaue Fragen stellst, denn "funktioniert nicht" hilft nicht weiter.

    Woher soll ich vorher wissen wo der Fehler liegt, wenn das genau meine Frage wäre?

    Du sollst Fragen:
    Folgender Code produziert bei mir Fehler xyz.

    Nicht:
    Folgender Code funktioniert nicht.



  • jizzer schrieb:

    Ich finds nicht in reinem C code..

    Ich bitte dich, gleich der zweite Eintrag führt zu C-Code aus OpenBSD 😮 😕


Anmelden zum Antworten