#include <curses.h>
int addchstr(const chtype *chstr);
int addchnstr(const chtype *chstr, int n);
int waddchstr(WINDOW *win, const chtype *chstr);
int waddchnstr(WINDOW *win, const chtype *chstr, int n);
int mvaddchstr(int y, int x, const chtype *chstr);
int mvaddchnstr(int y, int x, const chtype *chstr, int n);
int mvwaddchstr(WINDOW *win, int y, int x, const chtype *chstr);
int mvwaddchnstr(WINDOW *win, int y, int x, const chtype *chstr,
int n);
The window cursor is not advanced, and these routines work faster than waddnstr(3). On the other hand, they don't perform any kind of checking (such as for the newline, backspace, or carriage return characters), they don't advance the current cursor position, they don't expand other control characters to ^-escapes, and they truncate the string if it crosses the right margin, rather then wrapping it around to the new line.
All these entry points are described in the XSI Curses standard, Issue 4.
curses(3)