![]() Chapter Contents |
![]() Previous |
![]() Next |
| memmove |
| Portability: | ISO/ANSI C conforming |
| SYNOPSIS | |
| DESCRIPTION | |
| RETURN VALUE | |
| CAUTION | |
| EXAMPLE | |
| RELATED FUNCTIONS | |
| SEE ALSO |
| SYNOPSIS |
#include <string.h> void *memmove(void *to, const void *from, size_t n);
| DESCRIPTION |
memmove
is identical to
memcpy
except that the
copy is guaranteed to work correctly even if the
to
and
from
objects overlap. On
completion of the call, the
n
bytes addressed
by
to
are identical to the
n
bytes addressed by
from
before
the call.
| RETURN VALUE |
memmove
returns a pointer to the
to
area.
| CAUTION |
The third argument to
memmove
is
size_t
. If a negative
number is passed, massive overlaying of memory may occur.
| EXAMPLE |
This example removes hyphens from a word
by shifting text to the left to overlay any hyphens, using
memmove
:
#include <string.h>
#include <stdio.h>
#define MAXLEN 100
main()
{
char *word;
size_t len;
char *hyphen;
char line[MAXLEN];
puts("Enter a hyphenated word: ");
word = gets(line);
printf("\noriginal word: %s\n", word);
len = strlen(word);
for (;;) {
hyphen = strchr(word, '-');
if (!hyphen) break;
memmove(hyphen, hyphen + 1, len - (hyphen - word));
/* Remove hyphen from word. */
--len;
}
printf("Unhyphenated word: %s\n", word);
}
| RELATED FUNCTIONS |
| SEE ALSO |
![]() Chapter Contents |
![]() Previous |
![]() Next |
![]() Top of Page |
Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.