unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-4.1.3)
Page:
Section:
Apropos / Subsearch:
optional field

STRING(3)                  Library Functions Manual                  STRING(3)



NAME
       strcat, strncat, strdup, strcmp, strncmp, strcasecmp, strncasecmp, str-
       cpy,  strncpy,  strlen,  strchr,  strrchr,  strpbrk,  strspn,  strcspn,
       strstr, strtok, index, rindex - string operations

SYNOPSIS
       #include <&lt;string.h>&gt;

       char *strcat(s1, s2)
       char *s1, *s2;

       char *strncat(s1, s2, n)
       char *s1, *s2;
       int n;

       char *strdup(s1)
       char *s1;

       int strcmp(s1, s2)
       char *s1, *s2;

       int strncmp(s1, s2, n)
       char *s1, *s2;
       int n;

       int strcasecmp(s1, s2) char *s1, *s2;

       int strncasecmp(s1, s2, n)
       char *s1, *s2;
       int n;

       char *strcpy(s1, s2)
       char *s1, *s2;

       char *strncpy(s1, s2, n)
       char *s1, *s2;
       int n;

       int strlen(s)
       char *s;

       char *strchr(s, c)
       char *s;
       int c;

       char *strrchr(s, c)
       char *s;
       int c;

       char *strpbrk(s1, s2)
       char *s1, *s2;

       int strspn(s1, s2)
       char *s1, *s2;

       int strcspn(s1, s2)
       char *s1, *s2;

       char *strstr(s1, s2)
       char *s1, *s2;

       char *strtok(s1, s2)
       char *s1, *s2;

       #include <&lt;strings.h>&gt;

       char *index(s, c)
       char *s, c;

       char *rindex(s, c)
       char *s, c;

DESCRIPTION
       These  functions operate on null-terminated strings.  They do not check
       for overflow of any receiving string.

       strcat() appends a copy of string s2 to the end of  string  s1.   strn-
       cat()  appends  at  most  n  characters.  Each returns a pointer to the
       null-terminated result.

       strcmp() compares its arguments and returns an  integer  greater  than,
       equal  to, or less than 0, according as s1 is lexicographically greater
       than, equal to, or less than s2.  strncmp() makes the  same  comparison
       but  compares  at  most  n  characters.   Two  additional routines str-
       casecmp() and strncasecmp() compare the strings and ignore  differences
       in  case.   These routines assume the ASCII character set when equating
       lower and upper case characters.

       strdup() returns a pointer to a new string which is a duplicate of  the
       string  pointed  to  by  s1.   The space for the new string is obtained
       using malloc(3V).  If the new string cannot be created, a NULL  pointer
       is returned.

       strcpy()  copies  string  s2  to  s1  until the null character has been
       copied.  strncpy() copies string s2 to s1 until either the null charac-
       ter has been copied or n characters have been copied.  If the length of
       s2 is less than n, strncpy() pads s1  with  null  characters.   If  the
       length  of  s2  is  n or greater, s1 will not be null-terminated.  Both
       functions return s1.

       strlen() returns the number of characters in s, not including the null-
       terminating character.

       strchr()  (strrchar()) returns a pointer to the first (last) occurrence
       of character c in string s, or a NULL pointer if c does  not  occur  in
       the  string.   The null character terminating a string is considered to
       be part of the string.

       index() (rindex()) returns a pointer to the first (last) occurrence  of
       character  c  in string s, or a NULL pointer if c does not occur in the
       string.  These functions  are  identical  to  strchr()  (strchr())  and
       merely have different names.

       strpbrk() returns a pointer to the first occurrence in string s1 of any
       character from string s2, or a NULL pointer if  no  character  from  s2
       exists in s1.

       strspn()  (strcspn())  returns  the  length  of  the initial segment of
       string s1 which consists entirely of characters from (not from)  string
       s2.

       strstr()  returns  a  pointer  to  the  first occurrence of the pattern
       string s2 in s1.  For example, if s1 is "string thing" and s2 is "ing",
       strstr()  returns  "ing  thing".   If s2 does not occur in s1, strstr()
       returns NULL.

       strtok() considers the string s1 to consist of a sequence  of  zero  or
       more  text tokens separated by spans of one or more characters from the
       separator string s2.   The  first  call  (with  pointer  s1  specified)
       returns  a  pointer to the first character of the first token, and will
       have written  a  null  character  into  s1  immediately  following  the
       returned  token. The function keeps track of its position in the string
       between separate calls, so that subsequent calls (which  must  be  made
       with the first argument a NULL pointer) will work through the string s1
       immediately following that token.  In this way  subsequent  calls  will
       work  through  the  string  s1  until  no tokens remain.  The separator
       string s2 may be different from call to call.  When no token remains in
       s1, a NULL pointer is returned.

NOTES
       For  user  convenience,  all  these  functions,  except for index() and
       rindex(), are declared in the optional  <&lt;string.h>&gt;  header  file.   All
       these functions, including index() and rindex() but excluding strchr(),
       strrchr(), strpbrk(), strspn(), strcspn(), and strtok() are declared in
       the  optional  <&lt;strings.h>&gt; include file; these headers are set this way
       for backward compatibility.

SEE ALSO
       malloc(3V), bstring(3)

WARNINGS
       strcmp() and strncmp() use native character comparison, which is signed
       on  the  Sun,  but may be unsigned on other machines.  Thus the sign of
       the value returned when one of the characters has  its  high-order  bit
       set is implementation-dependent.

       strcasecmp() and strncasecmp() use native character comparison as above
       and assume the ASCII character set.

       On the Sun processor, as well as on many other machines,  you  can  not
       use  a  NULL  pointer  to indicate a null string.  A NULL pointer is an
       error and results in an abort of the program.  If you wish to  indicate
       a  null string, you must have a pointer that points to an explicit null
       string.  On some implementations of the C language on some machines,  a
       NULL  pointer,  if dereferenced, would yield a null string; this highly
       non-portable trick was used in some programs.  Programmers using a NULL
       pointer  to represent an empty string should be aware of this portabil-
       ity issue; even on machines where dereferencing a NULL pointer does not
       cause  an  abort  of  the program, it does not necessarily yield a null
       string.

       Character movement is performed differently  in  different  implementa-
       tions.  Thus overlapping moves may yield surprises.



                                6 October 1987                       STRING(3)