Zum Inhalt springen

Empfohlene Beiträge

Geschrieben
Du hast doch strtok schon benutzt. Beim ersten Aufruf übergibst du line, für die nachfolgenden Aufrufe NULL als ersten Parameter.

Generally, strtok() is not recommended. It works only on C-style

strings. It modifies the string. It can't be used with constant strings

or string literals. It has concurrency and reentrancey problems.

bzw.

Also, strtok has one really good use. It teaches newbies what

not to do, by biting them in the ass. Get hold of a good description

of strtok and read up on such things as: Buffer over runs as a

substantial security risk. Static buffers shared between different

calls to strtok as a data corruption risk. And so on.

War mir zwar neu, aber man lernt halt nie aus.

strncpy und sprintf schaffen Abhilfe:

strncpy(new,alt+position,länge);

sprintf(new,"%-10.10s,alt+position);

Geschmacksfrage.:rolleyes:

Ansonsten mal Freund Google befragen, gibts massig Algorithmen.

Geschrieben

Bei den Zitaten von bytes.com solltest du darauf hinweisen, dass es da um C++ geht. Darin stimme ich zu: In C++ sollte man strtok wirklich nicht benutzen.

In C sehe ich das weniger kritisch. Man muss bei der Verwendung von strtok wissen, was man tut, aber das muss man in C sowieso allgemeiner als bei C++.

It works only on C-style strings
Richtig. Was anderes haben wir in C auch nicht ;)

It modifies the string.
Richtig. Muss man halt wissen.

It can't be used with constant strings or string literals.
Das folgert direkt aus dem vorigen Punkt. Ist hier nicht relevant.

It has concurrency and reentrancey problems.
Genauer gesagt, die Funktion ist weder reentrant noch threadsafe. Beides ist hier nicht von Bedeutung. Trotzdem muss man das natürlich wissen.

strncpy ist übrigens auch nicht ohne. Diese Funktion setzt nämlich manchmal eine Nullterminierung, und manchmal nicht.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...