\HeaderA{charmatch}{Partial String Matching}{charmatch}
\keyword{character}{charmatch}
\begin{Description}\relax
\code{charmatch} seeks matches for the elements of its first argument
among those of its second.
\end{Description}
\begin{Usage}
\begin{verbatim}
charmatch(x, table, nomatch = NA)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{x}] the values to be matched.
\item[\code{table}] the values to be matched against.
\item[\code{nomatch}] the value returned at non-matching positions.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
Exact matches are preferred to partial matches (those where the value
to be matched has an exact match to the initial part of the target,
but the target is longer).

If there is a single exact match or no exact match and a unique
partial match then the index of the matching value is returned; if
multiple exact or multiple partial matches are found then \code{0} is
returned and if no match is found then \code{NA} is returned.
\end{Details}
\begin{Author}\relax
This function is based on a C function written by Terry Therneau.
\end{Author}
\begin{SeeAlso}\relax
\code{\LinkA{pmatch}{pmatch}}, \code{\LinkA{match}{match}}.

\code{\LinkA{grep}{grep}} or \code{\LinkA{regexpr}{regexpr}} for more general (regexp)
matching of strings.
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
charmatch("", "")                             # returns 1
charmatch("m",   c("mean", "median", "mode")) # returns 0
charmatch("med", c("mean", "median", "mode")) # returns 2
\end{ExampleCode}
\end{Examples}

