There are two basic techniques for making fixed-width tables in LaTeX: you can make the gaps between the columns stretch, or you can stretch particular cells in the table.
Basic LaTeX can make the gaps stretch: the tabular*
environment
takes an extra argument (before the clpr layout one) which takes a
length specification: you can say things like "15cm" or
"\columnwidth" here. You must also have an \extracolsep
command in the clpr layout argument, inside an @ directive. So,
for example, one might have
\begin{tabular*}{\columnwidth}{@{\extracolsep{\fill}}lllr}
The \extracolsep applies to all inter-column gaps to its right as
well; if you don't want all gaps stretched, add
\extracolsep{0pt} to cancel the original.
The tabularx package defines an extra clpr directive, X;
X columns behave as p columns which expand to fill the space
available. If there's more than one X column in a table, the spare
space is distributed between them.
The ltxtable combines the features of the longtable and tabularx packages: it's important to read the documentation, since usage is distinctly odd.