Enter a string and print it backwards

7 次查看(过去 30 天)
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 个评论
KSSV
KSSV 2022-7-5
str = 'MATLAB' ;
s = [] ;
n = length(str) ;
for i = n:-1:1
s = [s str(i)];
end
s
s = 'BALTAM'
Shuoze Xu
Shuoze Xu 2022-7-5
For q1, is that means i need to add ' on the fprintf like that '%s'?

请先登录,再进行评论。

回答(1 个)

KSSV
KSSV 2022-7-5
str = 'MATLAB' ;
% Option 1
flip(str)
ans = 'BALTAM'
% option 2
str(end:-1:1)
ans = 'BALTAM'
For printing, you can use fprintf
fprintf('%s\n',str)
MATLAB
  2 个评论
Shuoze Xu
Shuoze Xu 2022-7-5
编辑:Shuoze Xu 2022-7-5
If i want to use for loop, should i do like that?
string = input("Please enter a phase: ",'s');
old_char = char(string);
new_char = [];
for i = 1:length(old_char)
new_char = [new_char,old_char(end-i+1)];
end
fprintf("'%s' converts to '%s'",string,new_char);
This is something I learned from a post where I was confused about why char() was needed.
KSSV
KSSV 2022-7-5
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);

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

标签

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by