hi rocco,
da du offensichtlich davon ausgehst, dass nach einem "" ein "n" folgt, (also "\n") und du zeichenweise vergleichst, kannst du das nur auf diese art machen. du könntest es allerdings etwas einfacher schreiben:
switch (*tmp) { case '%': tmp++; printf ("%s", expandFmt (*tmp)); break; case '\': tmp++; if (*tmp == '\n') putchar('\n'); tmp++; break; default: /*...*/ }
was einfacheres fällt mir auf anhieb nicht ein. falls du mehrere sonderzeichen mit vorangestelltem "" behandeln willst, bietet es sich an, eine inline-funktion zu schreiben, das das auf das "" folgende zeichen behandelt. wenn dir das auch nicht zusagt, kannst du dir ja ansehen, wie es die entwickler der libc bei printf usw. gelöst haben.
mfg, jan