2 ssaypiano ssaypiano 于 2013.12.24 00:20 提问

用javascript写的字符串加密程序运行出错

编程思路:

1、由用户输入要加密的字符串(仅允许小写字母不包含空格)

2、把字符串中的每一个字母按字母表顺序向后移动两位输出新字符串

注释,暂不考虑“溢出”问题(即用户输入了x以后的字母),代码如下:

<script>   
//用split()函数把用户输入的字符串分割并赋值给数组str[]
var str=prompt("请输入要加密的字符串:").split(""); 

//定义包含26个小写字母的alphabet数组
var alphabet=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];

//定义alphabet数组的索引变量i
for(var i=0; i<=25;i++)

//定义str数组的索引变量n
for(var n=0; n<=str.length; n++)

//判断str数组中元素在alphabet中的位置,并往后移2位
if(str[n]==alphabet[i])
str[n]=alphabet[i+2]

//用jon()函数把str数组转换成字符串并赋值给newStr
var newStr=[str[n]].join("");

//输出结果
alert("加密后的新字符串是:"+newStr);
</script>

已经很晚了,我没时间翻书再检查错误了,明天一早我还要去工地搬砖,恳请列位大侠直接帮忙修改成能正确运行的代码,我明天抽空拜研之

1个回答

YangRuiHong
YangRuiHong   2013.12.24 09:01
已采纳

var str=prompt("请输入要加密的字符串:").split("");
var newStr=[];
var alphabet=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
for(var n=0; n<=str.length; n++)
for(var i=0; i<=25;i++)
if(str[n]==alphabet[i])
newStr[n]=alphabet[i+2];

alert("加密后的新字符串是:"+newStr.join(""))

YangRuiHong
YangRuiHong str[n]是str[]数组的元素,你需要对数组的内存分配这部分知识了解下。
4 年多之前 回复
ssaypiano
ssaypiano 感谢YangRuiHong网友!程序能正常运行,但是我还是对我的代码中if(str[n]==alphabet[i]), str[n]=alphabet[i+2],不认为有什么不对的地方,str[n]变量被赋了新值,应该和之前的str[n]变量没有任何关系了,被赋了新值的str[n]又赋值给了newStr[n],那么调用newStr.join("")方法应该出正确的结果才对;这些问题留给我自己学习吧,刚好书里有一章节“变量、作用域和内存问题”,应该就是介绍这方面问题的
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Javascript加密及解密字符串
index.html Insert title here function jia(){ var array=encrypt(document.getElementById("old").value,"我是可以随机生成的私钥!"); document.getElementById("key").val
js对字符串进行加密和解密
function compileStr(code){ //对字符串进行加密 var c=String.fromCharCode(code.charCodeAt(0)+code.length);  for(var i=1;i<code.length;i++) { c+=String.fromCharCode(code.charCodeAt(i)+cod
stm32遥控车程序
自己写的stm32蓝牙遥控车程序,程序运行稳定无出错,,,,,,,,,
c++程序运行出错问题处理
可以解决c++某些程序运行出错的问题 可以解决c++某些程序运行出错的问题 可以解决c++某些程序运行出错的问题 可以解决c++某些程序运行出错的问题
js字符串加密的几种方法
在做web前端的时候免不了要用javascript来处理一些简单操作,其实如果要用好JQuery, Prototype,Dojo 等其中一两个javascript框架并不简单,它提高你的web交互和用户体验,从而能使你的web前端有非一样的感觉,如海阔凭鱼跃。当然,对于javascript我也是半桶水。高手莫怪,在此我仅总结学习一下,以备用到时查录。 今天不说框架的事情,就从最基本的、比较常用的
javascript 树
用javascript写的树形结构用javascript写的树形结构用javascript写的树形结构用javascript写的树形结构用javascript写的树形结构用javascript写的树形结构
js 简单加密字符串方式
原串http://www.qidizi.com/d.php?pddd=kdkfj&dkfkk=%kekf或中文串戚笛子qidizi 密码qidizi或密码(含中文)qidiiz戚笛子加密后531_531_531_604_537_545_550_545_528_545_604_551_539_541_603_550_604_538_546_538_587_538_550_550_550_589_54
C#常用字符串加密解密方法封装代码
//方法一 //须添加对System.Web的引用 //using System.Web.Security; /// /// SHA1加密字符串 /// /// 源字符串 /// 加密后的字符串 public string SHA1(string source) { return FormsAuthentication.HashPasswordForStoringInConfigFil
VC编译程序,运行时提示运行错误“由于应用程序的配置不正确,……”解决方法
VC编译程序,运行时提示“由于应用程序的配置不正确,……”解决方法       下面分三种情况对运行错误“由于应用程序的配置不正确,……”进行解决,包括VC6.0、VC.NET2003、VC2005运行错误。1、  VC6.0程序的一个运行错误VC6.0程序的一个运行错误“由于应用程序的配置不正确,……”提示错误时,是由于编译程序时使用了共享连接库的方式,在操作系统支持MFC框架且有M
字符串的加密与解密
一、JavaScript预定义编码与解码方法 字符串常规编码与解码——escape()和unescape()       var str = 'HTML5 Free自由者';     str = escape(str);     console.log(str);     // HTML5%20Free%u81EA%u7531%u8005     str = u