Split a character string based on change of character: Difference between revisions

Add CLU
(→‎{{header|ooRexx}}: append =={{header|Pascal}}==)
(Add CLU)
Line 802:
{{out}}
<pre>g, HHH, 5, YY, ++, ///, \</pre>
 
=={{header|CLU}}==
<lang clu>% Split a string based on a change of character
split_on_change = iter (s: string) yields (string)
part: string := ""
for c: char in string$chars(s) do
if ~string$empty(part)
cand part[string$size(part)] ~= c then
yield(part)
part := ""
end
part := part || string$c2s(c)
end
yield(part)
end split_on_change
 
start_up = proc ()
po: stream := stream$primary_output()
str: string := "gHHH5YYY++///\\" % \\ escapes, as in C
rslt: string := ""
first: bool := true
for part: string in split_on_change(str) do
if first then first := false
else rslt := rslt || ", "
end
rslt := rslt || part
end
stream$putl(po, rslt)
end start_up</lang>
{{out}}
<pre>g, HHH, 5, YYY, ++, ///, \</pre>
 
=={{header|COBOL}}==
2,094

edits