---
name: "addstr"
section: "3ncurses"
platform: "linux"
package: "ncurses-doc"
version: "6.5+20250216-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/addstr/3ncurses"
---

# addstr(3ncurses)

add a string to a curses window and advance the cursor

## NAME

**addstr**, **waddstr**, **mvaddstr**, **mvwaddstr**, **addnstr**, **waddnstr**, **mvaddnstr**, **mvwaddnstr** - add a string to a *curses* window and advance the cursor

## SYNOPSIS

```
#include <curses.h>
```

**int addstr(const char \*** *str***);** **int waddstr(WINDOW \*** *win***, const char \*** *str***);** **int mvaddstr(int** *y***, int** *x***, const char \*** *str***);** **int mvwaddstr(WINDOW \*** *win***, int** *y***, int** *x***, const char \*** *str***);**

**int addnstr(const char \*** *str***, int** *n***);** **int waddnstr(WINDOW \*** *win***, const char \*** *str***, int** *n***);** **int mvaddnstr(int** *y***, int** *x***, const char \*** *str***, int** *n***);** **int mvwaddnstr(WINDOW \*** *win***, int** *y***, int** *x***, const char \*** *str***,**\
       **int** *n***);**

## DESCRIPTION

**waddstr** **writes the characters of the (null-terminated) string** *str* **to the window** *win*, **as if by calling waddch(3NCURSES) for each** *char* **in** *str*. **waddnstr** **is similar,** **but writes at most** *n* **characters.** **If** *n* **is -1,** **waddnstr** **writes the entire string.** **ncurses(3NCURSES) describes the variants of these functions.**

## RETURN VALUE

**These functions return** **OK** **on success and** **ERR** **on failure.**

**In** *ncurses*, **they return** **ERR** **if**

- •

  *win* **is** *NULL*,

- •

  *str* **is** *NULL*, **or**

- •

  **an internal waddch(3NCURSES) call returns** **ERR**.

**Functions prefixed with “mv” first perform cursor movement and** **fail if the position** (*y*, *x*) **is outside the window boundaries.**

## NOTES

**All of these functions except** **waddnstr** **may be implemented as macros.**

## PORTABILITY

**X/Open Curses Issue 4 describes these functions.** **It specifies no error conditions for them.**

**SVr4 describes a successful return value only as** **“an integer value other than** *ERR*”.

## HISTORY

**4BSD (1980)** **introduced** *waddstr* **along with its variants,** **the latter defined as macros.**

**SVr3.1 (1987)** **added** *waddnstr* **(and its variants)** **redefining** *waddstr* **as a macro wrapping it.**

## SEE ALSO

**addwstr(3NCURSES) describes comparable functions of the** *ncurses* **library in its wide-character configuration** (*ncursesw*).

**ncurses(3NCURSES),** **addch(3NCURSES),** **addchstr(3NCURSES)**
