Compare length of two strings: Difference between revisions

Content added Content deleted
No edit summary
Line 400: Line 400:
I LIKE TEA ( 10 )
I LIKE TEA ( 10 )
</pre>
</pre>

=={{header|Fortran}}==
Normally would use an external library for sorting, but to
remain self-contained, created (a very inefficient) sort_int()
procedure.
<lang fortran>
program demo_sort_indexed
implicit none

call print_sorted_by_length( [character(len=20) :: "shorter","longer"] )
call print_sorted_by_length( [character(len=20) :: "abcd","123456789","abcdef","1234567"] )
call print_sorted_by_length( [character(len=20) :: 'the','quick','brown','fox','jumps','over','the','lazy','dog'])

contains

subroutine print_sorted_by_length(list)
character(len=*) :: list(:)
integer :: i

list(sort_int(len_trim(list)))=list ! sort by length from small to large
write(*,'(i9,1x,a)')(len_trim(list(i)), list(i),i=size(list),1,-1)! print from last to first
write(*,*)

end subroutine print_sorted_by_length

function sort_int(input) result(counts) ! **very** inefficient mini index sort
integer :: input(:), counts(size(input)), i
counts=[(count(input(i) > input)+count(input(i) == input(:i)),i=1, size(input) )]
end function sort_int

end program demo_sort_indexed
}</lang>
{{out}}
<pre>
7 shorter
6 longer

9 123456789
7 1234567
6 abcdef
4 abcd

5 jumps
5 brown
5 quick
4 lazy
4 over
3 dog
3 the
3 fox
3 the

</pre>



==={{header|FreeBASIC}}===
==={{header|FreeBASIC}}===