finding big letters and skip a line

Hi,
I need to write a code that will help me find big letters in a string, and skip a line before the big letter(my string has to look like a poem with 5 lines)
Here the code I tried, I can't figure out what I need to write instead of ????
s="In the golden lightning Of the sunken sun,Oer which clouds are bright'ning, Thou dost float and run, Like an unbodied joy whose race is just begun";
for i=1:length(s)
if s(i)~=lower(s(i))
???
end
end

 Accepted Answer

Something like this:
s='In the golden lightning Of the sunken sun,Oer which clouds are bright''ning, Thou dost float and run, Like an unbodied joy whose race is just begun';
out=regexprep(s,'[A-Z]','\n$0')

1 Comment

Yup, there it is. Concise, elegant. Nice.

Sign in to comment.

More Answers (1)

Scott MacKenzie
Scott MacKenzie on 21 Apr 2021
Edited: Scott MacKenzie on 21 Apr 2021
There's probably a more elegant solution, but here's a first quick shot at this:
s="In the golden lightning Of the sunken sun,Oer which clouds are bright'ning, Thou dost float and run, Like an unbodied joy whose race is just begun";
c = char(s);
upper = isstrprop(s, 'upper');
k = find(upper);
k = [k length(c)+1];
for i=2:length(k)
fprintf('%s\n', c(k(i-1):k(i)-1));
end
Output:
In the golden lightning
Of the sunken sun,
Oer which clouds are bright'ning,
Thou dost float and run,
Like an unbodied joy whose race is just begun

Tags

Asked:

on 21 Apr 2021

Edited:

on 21 Apr 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!