## length of the output of the substr function

Solved
Occasional Contributor
Posts: 5

# length of the output of the substr function

Hello,

I'm preparing the sas base certification but there is a point that I don't understand

The question is to give the length of City_Country after the following program is submitted:

data work.test;
First = 'Ipswich, England';
City_Country = substr(First,1,7)!!', '!!'England';
run;

Apparently the answer is 25, but why is it not 16? (Ipswich+, +England), is there a mistake in the solution?

Accepted Solutions
Solution
‎02-11-2018 10:34 AM
PROC Star
Posts: 1,215

## Re: length of the output of the substr function

As the documentation of the SUBSTR Function says:

"In a DATA step, if the SUBSTR (right of =) function returns a value to a variable that has not previously been assigned a length, then that variable is given the length of the first argument."

Meaning that substr(First,1,7) has the length 16, ', ' has the length 2 and 'England' has the length 7 giving the variable City_Country a total length of 25.

All Replies
PROC Star
Posts: 8,149

## Re: length of the output of the substr function

From the documentation ( https://support.sas.com/documentation/cdl/en/lrcon/62955/HTML/default/viewer.htm#a000780367.htm ):

```The concatenation operator (||) concatenates character values.
The results of a concatenation operation are usually stored in
a variable with an assignment statement, as in
level='grade '||'A' . The length of the resulting variable is
the sum of the lengths of each variable or constant in the
concatenation operation, unless you use a LENGTH or ATTRIB
statement to specify a different length for the new variable.```

Thus, the length of first (16) + the lengths of ', ' and 'England'

Art, CEO, AnalystFinder.com

Solution
‎02-11-2018 10:34 AM
PROC Star
Posts: 1,215

## Re: length of the output of the substr function

As the documentation of the SUBSTR Function says:

"In a DATA step, if the SUBSTR (right of =) function returns a value to a variable that has not previously been assigned a length, then that variable is given the length of the first argument."

Meaning that substr(First,1,7) has the length 16, ', ' has the length 2 and 'England' has the length 7 giving the variable City_Country a total length of 25.

Occasional Contributor
Posts: 5

## Re: length of the output of the substr function

thank you!
☑ This topic is solved.