---
name: "strmaxcpy"
section: "3pub"
platform: "linux"
package: "publib-dev"
version: "0.40-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/strmaxcpy"
---

# strmaxcpy(3pub)

copy at most a given number of characters of string

## NAME

strmaxcpy - copy at most a given number of characters of string

## SYNOPSIS

```
#include <publib.h>
char *strmaxcpy(char *tgt, const char *src, size_t n);
```

## DESCRIPTION

*strmaxcpy* copies up to *n-1* characters from the beginning of *src* to *tgt*, then adds a '\\0'.  *n* must be at least 1. The target string must be large enough to hold the result.

Note that unlike [*strncpy*(3)](/strncpy/3.md), this function always terminates the result with '\\0'.  It also doesn't fill the result with extra '\\0' characters.

## RETURN VALUE

*strmaxcpy* returns its first argument.

## EXAMPLE

To print out the first 69 characters of a string, you might do the following (although familiarity with printf's format string might be more useful in this case).

```
#include <stdio.h>
#include <publib.h>
void print42(const char *string) {
	char copy[43];	/* 42 + '\0' */
	puts(strmaxcpy(copy, string, sizeof(copy)));
}
```

## SEE ALSO

publib(3), [strncpy(3)](/strncpy/3.md)

## AUTHOR

Lars Wirzenius (lars.wirzenius@helsinki.fi)
