STRNCPY

Syntax:

strncpy <string pointer destination>, <string pointer source>, <byte n>

The STRNCPY command is similar to STRCPY, the difference is that STRNCPY will copy the first n characters only. Copying will stop at the end of source even if n is greater than the length of source.

Example:

dim buffer![6]
a$ = "hello world"
b$ = @buffer!
strncpy b$, a$, 5
print b$
rem -- the above will output "hello"

STRNCPY can be used to emulate the CBM BASIC functions LEFT$ and MID$. The example above shows how to get the first n characters of a string. Here is an example for getting the middle of a string:

CBM BASIC code:

10 a$="hello world"
20 b$=mid$(a$, 4, 3)
30 print b$

XC=BASIC code:

a$ = "hello world"
dim buffer![6]
b$ = @buffer!
strncpy b$, a$+4, 3
print b$

Both programs will output “o w”.

Important note: The routine will not stop copying at the end of destination which may lead to an overflow situation. You have to make sure that there is enough memory at the destination.