很想吐槽一句,你们问问题,为什么总喜欢截图,甚至拍照,我想给你调试代码还得识别文字甚至手敲一遍,就不能直接把代码打出来嘛?
好了,言归正传,你在循环的过程中,改变了字符串str的大小(因此部分字符你设置为空了),迭代的时候字符串大小是不断减少的,所以最后肯定会超过索引。最简单的解决办法就是让字符串大写字母部分变成空格,不要变成空,比如下面的代码:
clc
clear
str=input('','s');
for i=1:(length(str))
if str(i)>='A' && str(i)<='Z'
str(i)=' ';
else
str(i)=str(i);
end
end
disp(str)
运行结果如下:
如果有问题欢迎继续提问,没问题希望点一下采纳,谢谢~
for i=0:(length(str))-1 看看
length要减一