Strings manipulieren
-
prolog schrieb:
Wenns dir hilft kann ich ja als Bibleothekengläubiger über deinen code herfallen.
Nee hast ja recht. Naja soll er sich aussuchen.
Es heißt Bibliothek!
got Deutsch?
-
Es geht doch vor allem um den letzten IP-Teil.
Wie stehts damit?char ip[16]= "192.168.1.1"; char ip_last[16]; int last_segmet = 150; strcpy(ip_last, ip); sprintf(strrchr(ip_last, '.')+1, "%d", last_segmet);
-
@dumb
Entschuldige vielmals. Muss ich jetz das Wort Bibliothek 100 mal an die Tafel schreiben ?
-
Vielen Dank ersmal!
Ich hatte das genau so mit printf gelöst. Allerdings hat das nicht gefunzt bis ich char ip[1000] auf char ip[4] gestzt hatte??? Ist das vom Prinzip her nicht egal?
Nun funzt aber allles
-
Scheinbar nicht sonst hätte es ja geklappt
-
ups ich hab das gerade mal vernünfitg getestest... ist tatsächlich noch buggy... man muss ggf. das nullbyte am ende noch vernünftig verschieben...
-
@Taurin
Das wäre auch meine Lösung gewesen, da es ja nur hieß, dass die letzte Stelle geändert werden muss. Nur sollte man da noch eine Abfrage einbauen, ob strrchr() auch was gefunden hat. Auf die Speicheradresse 0 bzw. 1 zu schreiben, kommt nicht gut ;).Ansonsten würde ich der Lösung von prolog nachgehen. Die IP-Adresse also zuerst in eine Zahl umwandeln (das geht auch mit ANSI-C @Windalf ;)) davon die gewünschte Stelle entfernen, die neue Zahl einfügen und wieder in das bekannte Stringformat formatieren.
-
es gibt eigentlich eine ganz einfach ANSI-C Lösung
bin leider nicht selber drauf gekommen werd sie euch aber nicht vorenthalten
da hab ich irgendwie erst den wald vor lauter bäumen nicht gesehenvoid replace_ip_part(int part,char*number,char ip[16]){ int a[4]; sscanf(ip,"%d.%d.%d.%d",a,a+1,a+2,a+3); a[part]=atoi(number); sprintf(ip,"%d.%d.%d.%d",*a,a[1],a[2],a[3]); }
-
Noch ein kleiner Verbesserungsvorschlag (+ Fehlerkorrektur):
char *replace_ip_part(int part,int number,char *ip) { ... return(ip); }
-
AJ schrieb:
@Taurin
Nur sollte man da noch eine Abfrage einbauen, ob strrchr() auch was gefunden hat. Auf die Speicheradresse 0 bzw. 1 zu schreiben, kommt nicht gut ;).Das hängt ganz von der eigenen Riskiobereitschaft ab
Wenn man sich *sicher* ist,
dass man eine IP-Adresse im string hat, dann brauch man gar nicht testen...Ob das scanf() so ne schöne Idee ist? Vielleicht liest man die IP ja auch aus
irgendeiner config-Datei aus, statt sie von der Tastatur zu lesen.Zur allgemeinen Weiterbildung:
www.cplusplus.com/ref (insbesondere der Teil zur <string.h>)
-
Ob das scanf() so ne schöne Idee ist? Vielleicht liest man die IP ja auch aus
irgendeiner config-Datei aus, statt sie von der Tastatur zu lesen.versteh ich nicht wie du das meinst.. woher das gelsen wird ist doch egal muss nur in einem char-array eingelsen werden... ich bentutze ja nicht scanf um von der konsole zu lesen sondern sscanf um aus nem string zu lesen...
-
Asche auf mein Haupt. Ob es hilft, wenn ich mein Lesefehler auf die bescheidene
Standard-Biblithek-Nomenklatur schiebe?
-
Taurin schrieb:
Asche auf mein Haupt. Ob es hilft, wenn ich mein Lesefehler auf die bescheidene
Standard-Biblithek-Nomenklatur schiebe?*gg* nein. Er darf dich nun steinigen.
-
*duck*
-
[OT]
Falsche Bärte zu verkaufen!
[/OT]@Taurin
Wenn es wirklich sicher ist, dann ja, aber kann man da wirklich sicher sein?? Außerdem kann das leicht zur Gewohnheit werden, dass man es weglässt und das wär dann wieder schlecht ;).