Enter a string and print it backwards
Show older comments
Hi.
I'm having a problem with how do I print the string backwards.
Here is my code.
string = input("Please enter a phase: ",'s');
converted_string = []; % Empty phase
for i = length(string):1 % from end to begin
converted_string = [converted_string,string(i)];
end
fprintf("%s converts to %s",string,converted_string);
Expected result: Please enter a phase: There are 18 apples
'There are 18 apples' converts to 'selppa 81 era erehT'
My code result: Please enter a phase: There are 18 apples
There are 18 apples converts to
The first question is that how to add symbol ' on the string?
The second question is that why the result did not have reverse string here?
Thank you all.
3 Comments
Q1: single quotes must be escaped by duplicating them: 'this is escaped ''.'
Q2: Consider the order of these: [converted_string,string(i)]; Using your example: after the 1st iteration, converted_string consists of 'T', after the 2nd iteration it consists of 'Th'... Think about that concatenation.
str = 'MATLAB' ;
s = [] ;
n = length(str) ;
for i = n:-1:1
s = [s str(i)];
end
s
Shuoze Xu
on 5 Jul 2022
Answers (1)
str = 'MATLAB' ;
% Option 1
flip(str)
% option 2
str(end:-1:1)
For printing, you can use fprintf
fprintf('%s\n',str)
2 Comments
KSSV
on 5 Jul 2022
You may skip that conversion.
old_char = input("Please enter a phase: ",'s');
new_char = [];
for i = 1:length(old_char)
new_char = [new_char,old_char(end-i+1)];
end
fprintf("'%s' converts to '%s'\n",old_char,new_char);
Categories
Find more on Operations on Strings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!