---
name: "curs_addstr"
section: "3x"
platform: "macos"
package: "ncurses"
version: "79"
release: "macOS 26.5"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/curs_addstr/3x"
---

# curs\_addstr(3x)

add a string of characters to a curses window and advance cursor

## NAME

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

## SYNOPSIS

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

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

## DESCRIPTION

These functions write the (null-terminated) character string *str* on the given window. It is similar to calling **waddch** once for each character in the string.

The *mv* functions perform cursor movement once, before writing any characters. Thereafter, the cursor is advanced as a side-effect of writing to the window.

The four functions with *n* as the last argument write at most *n* characters, or until a terminating null is reached. If *n* is -1, then the entire string will be added.

## RETURN VALUE

All functions return the integer **ERR** upon failure and **OK** on success.

X/Open does not define any error conditions. This implementation returns an error

- •

  if the window pointer is null or

- •

  if the string pointer is null or

- •

  if the corresponding calls to **waddch** return an error.

Functions with a "mv" prefix first perform a cursor movement using **wmove**, and return an error if the position is outside the window, or if the window pointer is null.

## NOTES

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

## PORTABILITY

These functions are described in the XSI Curses standard, Issue 4.

## SEE ALSO

**curses**(3X), **curs\_addch**(3X).
