char -> Zeichen ersetzen



  • die warnung spuckt MS vc++ aus, weil MS sich da neue und nicht standard-konforme sachen ausdenkt, die du dir ruhig ansehen kannst, aber nicht musst.



  • hmm
    also "deprecated" heisst laut LEO "abgelehnt/missbilligt".
    also windows missbilligt es, weil da keine überprüfung des speichers stattfindet oder wieso genau? konnte dazu nichts finden in der onlinehilfe..

    wenn ich das ganze nun mit std:strings mache, ist es dann sicherer?



  • es bedeutet allgemein "missbilligt".
    strcpy() und alle c string funktionen sind deprecated, weil c strings AN SICH unsicher sind. das wusste man glaub ich schon seit den anfaengen, hat sich aber mehr um die knappen CPU ressourcen sorgen gemacht als um die sicherheit. die damaligen programmierer wussten ausserdem noch, was sie taten und konnten mit c strings wunderbar umgehen. heutzutage, im zeitalter von php und visual basic, da muss man ja nicht mehr aufpassen, was man da programmiert. deswegen gibt MS solche meldungen aus.



  • Kann es sein, dass ich eine Missbilligung deinerseits gegenüber dem "modernen Kram" raushöre? 😉
    Dann hältst Du wohl auch nichts von std::strings...

    Also kann ich es mit strcpy machen, wenn ich ordentlich arbeite, und immer erst den Platz im Array abfrage, mit strlen()? (da hab ich dann schon die zweite Warnung 🙂 )



  • Noobia schrieb:

    Dann hältst Du wohl auch nichts von std::strings...

    Ich kenne zumindest keinen C-Compiler der was mit std::string anfangen kann 😉



  • tja..ich hab schon lang befürchtet, dass ich im falschen Forum geposted hab.
    Ich will nun aber mit guten alten Hausmittelchen C weitermachen.
    Was würde denn noch alles "missbilligt" von meinem Code Stückchen?



  • cout -> printf



  • Danke

    Ich glaub dann versuch ich mich doch mit C++.
    Das cout << ist schon praktisch.

    @TactX: wegen deiner Signatur..*rotwerd* hast du das nachgeprüft 🤡



  • Noobia schrieb:

    Ich glaub dann versuch ich mich doch mit C++.
    Das cout << ist schon praktisch.

    Jo, mach das. C++ ist auch schön, viele Sachen sind da viel unproblematischer. Wobei printf() ebenfalls sehr praktisch ist.

    Noobia schrieb:

    @TactX: wegen deiner Signatur..*rotwerd* hast du das nachgeprüft 🤡

    Ja, das Leben ist _wirklich_ hart 😉



  • Noobia schrieb:

    und immer erst den Platz im Array abfrage, mit strlen()?

    nein, falsch. strlen() wird anders benutzt.

    du solltest mit python programmierung weitermachen, wenn du noch garkeine programmiererfahrungen hast.



  • c.rackwitz schrieb:

    Noobia schrieb:

    und immer erst den Platz im Array abfrage, mit strlen()?

    nein, falsch. strlen() wird anders benutzt.

    du solltest mit python programmierung weitermachen, wenn du noch garkeine programmiererfahrungen hast.

    Wie kommst du auf python? Weitermachen?
    Nun wie, wenn nicht durch machen bekommt man denn Erfahrung?



  • c programmierung ist nicht ideal fuer absolute anfaenger, weil man neben den ganzen grundsaetzlichen konzepten der programmierung auch noch mit den eigenheiten und "lowleveligkeit" von C belastet wird.

    wenn du noch nie programmiert hast, such dir eine einfache sprache wie python. da kannst du lernen.

    bis einem anfaenger klar wird, was wirklich im computer abgeht (was fuer programmierung essentiell ist!), vergeht ne weile. in der gleichen zeit die grundlagen der programmierung zu verstehen ist ne grosse belastung. wenns geht nimm dir nur eins auf einmal vor.

    ich (oder ueberhaupt irgendwer) koennte dir das ganze benoetigte wissen einfach aufschreiben oder erzaehlen. selbst dann musst du das alles noch verstehen, akzeptieren und verinnerlichen. wie schnell das geht haengt vom talent ab.



  • Ok, easy schon klar.
    ich bin nicht ganz so ne Noobe wies tönt.
    ich hab schon einiges in Pascal/Delphi gemacht (und ja python hab ich mir angesehn), von daher kenn ich Schleifen und Funktionen, und das Konzept der oop.
    "Lowlevel"C hab ich echt noch nicht so drauf, das stimmt schon. ich lern ja noch. das mit Arrays und Pointern und so muss ich noch schnallen..bin heut schonmal n Stück weitergekommen

    Jedenfalls nochmal besten Dank fürs weiterhelfen.

    ps @TactX: das Leben ist hart, ich mags hart 😉



  • c.rackwitz schrieb:

    wenn du noch nie programmiert hast, such dir eine einfache sprache wie python. da kannst du lernen.

    oder ein olles BASIC mit zeilennummern und gotos

    c.rackwitz schrieb:

    bis einem anfaenger klar wird, was wirklich im computer abgeht (was fuer programmierung essentiell ist!)...

    ich bin mir sicher: das sehen die oop-fans anders 😉
    ausserdem: wenn man wirklich wissen will wie's funzt sollte man sich vielleicht besser mit assembler auseinandersetzen. heute hat natürlich keiner mehr bock auf sowas, weil die pc's so gigahertzig sind, dass selbst die übelsten interpretersprachen ausreichend rennen...



  • net schrieb:

    c.rackwitz schrieb:

    wenn du noch nie programmiert hast, such dir eine einfache sprache wie python. da kannst du lernen.

    oder ein olles BASIC mit zeilennummern und gotos

    oder pascal, da kann man auch super mit lernen 🙄

    net schrieb:

    c.rackwitz schrieb:

    bis einem anfaenger klar wird, was wirklich im computer abgeht (was fuer programmierung essentiell ist!)...

    ich bin mir sicher: das sehen die oop-fans anders 😉
    ausserdem: wenn man wirklich wissen will wie's funzt sollte man sich vielleicht besser mit assembler auseinandersetzen.

    wenn es schneller ginge, resultate zu sehn, wärs auch beliebter.
    warum kennt eigentlich niemand mehr corewars? 😞

    net schrieb:

    heute hat natürlich keiner mehr bock auf sowas, weil die pc's so gigahertzig sind, dass selbst die übelsten interpretersprachen ausreichend rennen...

    *LOL* dann krabbel mal durch nen 232 zeichigen char array, da kommt auch ne schnelle mühle mit grossem gehirn ins grübeln..
    mit python kannste das viel performanter machen als mit C 👍



  • zeichensetzer schrieb:

    mit python kannste das viel performanter machen als mit C 👍

    echt? warum?



  • warum weiss ich ned..muss an den optimierten string operationen liegen

    http://shootout.alioth.debian.org/debian/benchmark.php?test=regexdna&lang=all

    erwischt, es ist das einzige beispiel, bei 2.5 mio chars ist c wieder vorne..hast ja recht..



  • aber eigentlich ist nur der gcc schneller mit unchecked lowlevel code..ob das was ist?
    c++ muss aber hinten anstehen

    http://shootout.alioth.debian.org/gp4sandbox/benchmark.php?test=revcomp&lang=all



  • net, ich hab meine erfahrungen in scheme, also ist mir voellig klar, dass "register und shifts" nicht alles sind, was man verstehen muss: rekursion, stacks, lambdas, listen und baeume, funktionen als argumente und rueckgabewerte,...
    versteh mich doch bitte nicht immer falscher als der durchschnittsmensch.


Anmelden zum Antworten