Formatiertes Einlesen: IRC Hostname
-
Hallo HohesC,
Danke für deine Hilfe, aber es funktioniert leider immernoch nicht, als Ausgabe kommt:
Ausgabe: Nickname: blaaablaa!buubaa@the.master.of.blabla.net Ident: Host: ►
Gruss Unix]Newbie
-
unix]newbie schrieb:
sscanf(hostname, "%[^ ]!%[^ @]%[^ ]", user.nickname, user.ident, user.host);
Seit wann versteht sscanf Reguläre Ausdrücke? Na egal auf jeden Fall fehlen die Format-Specifiers. Sollte "%s irgendwas %s" sein.
Kurt
-
Sers
ZuK schrieb:
unix]newbie schrieb:
sscanf(hostname, "%[^ ]!%[^ @]%[^ ]", user.nickname, user.ident, user.host);
Seit wann versteht sscanf Reguläre Ausdrücke? Na egal auf jeden Fall fehlen die Format-Specifiers. Sollte "%s irgendwas %s" sein.
KurtGeht imfall immernoch nicht ;). Habe jetzt das so gemacht %s[^ ]
gruss unix]newbie
-
Wie gesagt Ich glaube nicht dass dass sscanf reguläre Ausdrücke erlaubt.
Versuche einmalsscanf(hostname, "%s!%s@%s", user.nickname, user.ident, user.host);
Kurt
-
ZuK: Das war mein erster Versuch. Dein Vorschlag geht auch nicht :-(. Gruss unix]newbie
-
wie wärs mit strtok? beim ersten mal als trennzeichen das !, beim zweiten mal das @...
auf bald
oenone
-
hi, strtok kenne ich, will es aber mit sscanf lösen. Ich will wissen was da falsch ist. Denn strtok könnte ich auch.
Danke
-
Ausgeflippt habe noch nirgends gehört das sscanf sowas kann.
So funktionierts:#include <stdio.h> #include <stdlib.h> struct irc_hostname { char nickname[64]; char ident[64]; char host[128]; }; int main(int argc, char *argv[]) { /* eg. nickname!ident@host */ char hostname[]="blaaablaa!buubaa@the.master.of.blabla.net"; struct irc_hostname user; sscanf(hostname, "%[^!]!%[^@]@%s", &user.nickname, &user.ident, &user.host); printf("\n\nAusgabe:\n"); printf("Nickname: %s\n", user.nickname); printf("Ident: %s\n", user.ident); printf("Host: %s\n", user.host); return 0; }
output schrieb:
Ausgabe:
Nickname: blaaablaa
Ident: buubaa
Host: the.master.of.blabla.netMan lernt nie aus.
Kurt
-
http://www.cppreference.com/stdio/scanf.html
es sind keine richtigen regex aber immerhin was ähnliches.
-
Danke Leute.
rackwitz: Das war auch meine Referenz, aber ich hatte nicht wirklich einen Plan, wie ich das mit dem Hostnamen lösen sollte ;).
ZuK: Ist wohl so ;-). Ich habe auch daraus gelernt. Vielen Dank für deine Hilfe.
Gruss unix]newbie