游戏网站建设流程图,wordpress 页面美化,西安个人做网站,宁夏建设网站公司一、遇到问题
在 继续更新完善#xff1a;C 结构体代码转MASM32代码 中#xff0c;由于结构体成员中可能为数组类型的情况#xff0c;因此我们在提取结构体成员信息的过程中#xff0c;需要检测结构体成员名称字符串中是否包括 []#xff0c;如果包括那么我们要截取[前面…一、遇到问题
在 继续更新完善C 结构体代码转MASM32代码 中由于结构体成员中可能为数组类型的情况因此我们在提取结构体成员信息的过程中需要检测结构体成员名称字符串中是否包括 []如果包括那么我们要截取[前面的内容作为成员名称。
在用字符串的indexOf()方法检测和定位[时发现对字符串数组无效即使字符串数组元素值中包括[但返回值仍是-1。
深入分析后找到了原因。
二、实例分析
我们通过下面这个例子来说明
!DOCTYPE html
html
bodyscriptdocument.write(strong在字符串中查找[/strongbr);
var strMIB_ TCP6ROW OWNER MODULE\ttable[ANY _SIZE];
document.write(str,str,,brstr.indexOf([),str.indexOf([)brbr); // 在字符串中查找[
document.write(brstrong在字符串数组中查找[/strongbr);
var a str.split(\t);
document.write(a, a, br,a.indexOf([),a.indexOf([)br); // 在字符串数组中查找[for (var i0; i a.length; i)
{document.write(bra[,i,] , a[i], br,a[,i,].indexOf([),a[i].indexOf([)br); // 在字符串数组中查找[}
/script/body
/html
输出结果如下 在字符串中查找[ strMIB_ TCP6ROW OWNER MODULE table[ANY _SIZE] str.indexOf([)31在字符串数组中查找[ aMIB_ TCP6ROW OWNER MODULE,table[ANY _SIZE] a.indexOf([)-1 a[0] MIB_ TCP6ROW OWNER MODULE a[0].indexOf([)-1 a[1] table[ANY _SIZE] a[1].indexOf([)5 在上面的例子中对于字符串变量str可以用indexOf()来查找子串所以str.indexOf([)可以直接定位到31。
当我们用split()方法把字符串str的值分割为数组a后尽管数组a的值是MIB_ TCP6ROW OWNER MODULE,table[ANY _SIZE]但直接对数组名a使用indexOf()查找子串无效返回值总是-1。
所以正确的处理方式是对数组a中的元素逐个进行搜索。