COHERENT manpages
This page displays the COHERENT manpage for string.h [Declarations for string library].
List of available manpages
Index
string.h -- Header File
Declarations for string library
#include <string.h>
string.h is the header that holds the prototypes of all ANSI routines that
handle strings and buffers. It declares the following routines:
fnmatch()......Match a string with a normal expression
index()........Search string for a character; use strchr() instead
memccpy()......Copy a region of memory up to a set character
memchr().......Search a region of memory for a character
memcmp().......Compare two regions of memory
memcpy().......Copy one region of memory into another
memmove()......Copy one region of memory into another with which it overlaps
memset().......Fill a region of memory with a character
pnmatch()......Match string pattern
strcat().......Concatenate two strings
strcmp().......Compare two strings
strncat()......Append one string onto another
strncmp()......Compare two lengths for a set number of bytes
strcpy().......Copy a string
strncpy()......Copy a portion of a string
strcoll()......Compare two strings, using locale information
strcspn()......Return length one string excludes characters in another
strdup().......Duplicate a string
strerror().....Translate an error number into a string
strlen().......Measure a string
strpbrk()......Find first occurrence in string of character from another string
strchr().......Find leftmost occurrence of character in a string
strrchr()......Find rightmost occurrence of character in a string
strspn().......Return length one string includes character in another
strstr().......Find one string within another string
strtok().......Break a string into tokens
strxfrm()......Transform a string, using locale information
Example
This example reads from stdin up to NNAMES names, each of which is no more
than MAXLEN characters long. It then removes duplicate names, sorts the
names, and writes the sorted list to the standard output. It demonstrates
the functions shellsort(), strcat(), strcmp(), strcpy(), and strlen().
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NNAMES 512
#define MAXLEN 60
char *array[NNAMES];
char first[MAXLEN], mid[MAXLEN], last[MAXLEN];
char *space = " ";
int compare();
main()
{
register int index, count, inflag;
register char *name;
count = 0;
while (scanf("%s %s %s\n", first, mid, last) == 3) {
strcat(first, space);
strcat(mid, space);
name = strcat(first, (strcat(mid, last)));
inflag = 0;
for (index=0; index < count; index++)
if (strcmp(array[index], name) == 0)
inflag = 1;
if (inflag == 0) {
if ((array[count] =
malloc(strlen(name) + 1)) == NULL) {
fprintf(stderr, "Insufficient memory\n");
exit(EXIT_FAILURE);
}
strcpy(array[count], name);
count++;
}
}
shellsort(array, count, sizeof(char *), compare);
for (index=0; index < count; index++)
printf("%s\n", array[index]);
exit(EXIT_SUCCESS);
}
compare(s1, s2)
register char **s1, **s2;
{
return(strcmp(*s1, *s2));
}
See Also
header files,
libc,
strcasecmp(),
strcasencmp()
ANSI Standard, §7.1.1
Notes
Some implementations of UNIX call this header file strings.h. If you are
porting code to COHERENT, you may have to modify the #include directives
that invoke this header file.
The ANSI standard allows adjacent string literals, e.g.:
"hello" "world"
Adjacent string literals are automatically concatenated. Thus, the
compiler will automatically concatenate the above example into:
"helloworld"
Because this departs from the Kernighan and Ritchie description of C, it
will generate a warning message if you use the compiler's -VSBOOK option.

















