How could I fix my script?
20 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
michael story
el 8 de Oct. de 2018
Respondida: Walter Roberson
el 8 de Oct. de 2018
If I am using the function rotatedText=rot(text,n). First things for say, I have to make sure that my script should apply a Caesar cipher encryption with a shift to n to input string text. The function should shift uppercase letters to uppercase letters and lowercase letters to lowercase letters. If the string text contains numbers or special characters it should leave them the same. The function should work for negative shifts and shifts greater than 26 or less than -26.
function rotatedText=rot(text,n);
n=mod(n,26)
for i=1:length(text)
ascii=double(txt(i));
if ascii>=65 && ascii<90
rotatedText(i)=char(ascii+n);
elseif ascii>=97 && ascii<=122
rotatedText(i)=char(ascii+n)
else ascii>=33 && ascil<=65 || ascii>=90 && ascii<97 || ascii>=122 &&
ascii<=126;
rotatedText(i)=char(ascii);
end
end
3 comentarios
Respuesta aceptada
Walter Roberson
el 8 de Oct. de 2018
Decide which range you are in. If it is one of the two ranges to be affected, record the character that is the beginning of the range and calculate the distance of the character from the beginning of the range. Add the shift to the distance. Take mod 26. Add the recorded beginning of the range, and convert to char and save. Otherwise save unchanged. Repeat for all characters.
... You can vectorize this in at most two cases.
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Characters and Strings en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!