该楼层疑似违规已被系统折叠隐藏此楼查看此楼
function x=p12_1(s)
ns=size(s);
a=ns(1);
b=ns(2); %取得矩阵的规格,即行和列
x=cell(a,b); %建立新矩阵x
for ii=1:a %这个嵌套循环对每个字符串进行单独操作
for jj=1:b
st=s{ii,jj}; %取出字符串元素
fakesort=sort(st); %假整理一次,目的只是为了取得大写字母
uppersum=sum(st<='Z'&st>='A'); %取得大写字母的个数
up=fakesort(1:uppersum); %提取大写字母字符串
up=lower(up); %将大写字母字符串转换为小写
low=lower(st); %将原字符串全部转化为小写
low1=sort(low); %将全部为小写字母的字符串按字母表顺序升序排列
fortt=1:uppersum %这个嵌套循环将以排列好的小写字母与提取出的大写字母(实际已转化为小写)一一比对,将其转换为大写
for yy=1:length(st)
if up(tt)==low1(yy)
low1(yy)=upper(low1(yy));
break;
end
end
end
x{ii,jj}=low1; %最后赋值给x
end
end
end
下面是一组测试结果:
>> a=cell(2,2)
a =
[] []
[] []
>> a{1,1}='shYstjYTSDjdk';
>> a{1,2}='sjhjsSYJsjyNhJU';
>> a{2,1}='zhjDSYJJssyjAsJ';
>> a{2,2}='hsstySYTJTszMK';
>> p12_1(a)
ans =
'DdhjjkSssTtYY' 'hhJJjjjNSsssUYy'
'ADhJJJjjSsssYyz' 'hJKMSsssTTtYyz'
就是这样,从最后一组结果可以看出,将大写字母排到前面了
@melody霜之哀伤