博文

C++入门 第六章 6.4 字符串与指针(2008-10-08 20:08:00)

摘要:  在C++中可以用3种方法访问一个字符串(在第5章介绍了前两种方法)。 1. 用字符数组存放一个字符串 例6.10 定义一个字符数组并初始化,然后输出其中的字符串。 #include <iostream> using namespace std; int main( ) { char str[]=″I love CHINA!″; cout<<str<<endl; return 0; }   运行时输出: I love CHINA! 2. 用字符串变量存放字符串 例6.11 定义一个字符串变量并初始化,然后输出其中的字符串。 #include <string> #include <iostream> using namespace std; int main( ) { string str=″I love CHINA!″; cout<<str<<endl; return 0; }   3. 用字符指针指向一个字符串 例6.12 定义一个字符指针变量并初始化,然后输出它指向的字符串。 #include <iostream> using namespace std; int main( ) { char *str=″I love CHINA!″; cout<<str<<endl; return 0; } 对字符串中字符的存取,可以用下标方法,也可以用指针方法。 例6.13 将字符串str1复制为字符串str2。   定义两个字符数组str1和str2,再设两个指针变量p1和p2,分别指向两个字符数组中的有关字符,通过改变指针变量的值使它们指向字符串中的不同的字符,以实现字符的复制。 #include <iostream> using namespace std; int main( ) { char str1[]=″I love CHINA!″,str2[20],*p1,*p2; p1=str1;p2=str2; for(;......

阅读全文(2500) | 评论:4

C++入门 第六章 3. 用指向数组的指针作函数参数(2008-10-08 17:47:00)

摘要:  一维数组名可以作为函数参数传递,多维数组名也可作函数参数传递。 例6.9 输出二维数组各元素的值。 题目与例6.7相同,但本题用一个函数实现输出,用多维数组名作函数参数。 #include <iostream> using namespace std; int main( ) { void output(int (*p)[4]);                       //函数声明    int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; output(a);                                  //多维数组名作函数参数 return 0; }   void output(int (*p)[4])               //形参是指向一维数组的指针变量 { int i,j; for(i=0;i<3;i++) for(j=0;j<4;j++)  cout<<*(*(p+i)+j)<<″ ″; cout<<endl; } 运行情况如下: 1 3 5 7 9 11 13 15 17 19 21 23 ......

阅读全文(1981) | 评论:0

C++ 入门 第6章3. 用指向数组的指针作函数参数(2008-10-07 23:57:00)

摘要:  一维数组名可以作为函数参数传递,多维数组名也可作函数参数传递。 例6.9 输出二维数组各元素的值。 题目与例6.7相同,但本题用一个函数实现输出,用多维数组名作函数参数。 #include <iostream> using namespace std; int main( ) { void output(int (*p)[4]);                       //函数声明    int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; output(a);                                  //多维数组名作函数参数 return 0; }   void output(int (*p)[4])               //形参是指向一维数组的指针变量 { int i,j; for(i=0;i<3;i++) for(j=0;j<4;j++)  cout<<*(*(p+i)+j)<<″ ″; cout<<endl; } 运行情况如下: 1 3 5 7 9 11 13 15 17 19 21 23 ......

阅读全文(1599) | 评论:0

C++ 入门 第6章 2. 指向多维数组元素的指针变量(2008-10-07 23:57:00)

摘要:
  (1) 指向数组元素的指针变量 例6.7 输出二维数组各元素的值。 这里采用的方法是用基类型为整型的指针变量先后指向各元素,逐个输出它们的值。 #include <iostream> using namespace std; int main( ) { int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int *p;                              //p是基类型为整型的指针变量 for(p=a[0];p<a[0]+12;p++) cout<<*p<<″ ″; cout<<endl; return 0; }   运行结果如下: 1 3 5 7 9 11 13 15 17 19 21 23 说明: ① p是指向整型数据的指针变量,在for语句中对p赋初值a[0],也可以写成“p=&a[0][0]”。 ② 循环结束的条件是“p<a[0]+12”,只要满足p<a[0]+12,就继续执行循环体。 ③ 执行“cout<<*p;”输出p当前所指的列元素的值,然后执行p++,使p指向下一个列元素。   (2) 指向由m个元素组成的一维数组的指针变量 可以定义一个指针变量,它不是指向一个整型元素,而是指向一个包含m个元素的一维数组。这时,如果指针变量p先指向a[0](即p=&a[0]),则p+1不是指向a[0][1],而是指向a[1],p的增值以一维数组的长度为单位,见图6.17。
  例6.8 输出二维数组任一行任一列元素的值。 #include <iostream> using namespace std; int main( ) { int a......

阅读全文(2769) | 评论:0

C++ 入门 第6章6.3.3 多维数组与指针(2008-10-07 23:55:00)

摘要:

  用指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素。 1. 多维数组元素的地址 设有一个二维数组a,它有3行4列。它的定义为 int a[3][4]={{1,3,5,7},{9,11,13,15},{17,18,21,23}}; a是一个数组名。a数组包含3行,即3个元素:a[0],a[1],a[2]。而每一元素又是一个一维数组,它包含4图6.14个元素(即4个列元素),例如,a[0]所代表的一维数组又包含4个元素: a[0][0], a[0][1], a[0][2], a[0][3],见图6.14。可以认为二维数组是“数组的数组”,即数组a是由3个一维数组所组成的。
    从二维数组的角度来看,a代表二维数组首元素的地址,现在的首元素不是一个整型变量,而是由4个整型元素所组成的一维数组,因此a代表的是首行的起始地址(即第0行的起始地址,&a[0]),a+1代表a[1]行的首地址,即&a[1]。 a[0],a[1],a[2]既然是一维数组名,而C++又规定了数组名代表数组首元素地址,因此a[0]代表一维数组a[0]中0列元素的地址,即&a[0][0]。a[1]的值是&a[1][0],a[2]的值是&a[2][0]。     0行1列元素的地址可以直接写为&a[0][1],也可以用指针法表示。a[0]为一维数组名,该一维数组中序号为1的元素显然可以用a[0]+1来表示,见图6.16。 欲得到a[0][1]的值,用地址法怎么表示呢?既然a[0]+1是a[0][1]元素的地址,那么,*(a[0]+1) 就是a[0][1]元素的值。而a[0]又是和*(a+0)无条件等价的,因此也可以用*(*(a+0)+1)表示a[0][1]元素的值。依此类推,*(a[i]+j)或*(*(a+i)+j)是a[i][j]的值。     ......

阅读全文(2104) | 评论:0

js整数排序方法(2008-10-06 12:10:00)

摘要:<html> <head>
 
</head>
<body onLoad="clickOpen()">
 <script type="text/javascript">
 //比较函数
    function compareInt(vNum1,vNum2)
 {
   var iNum1=parseInt(vNum1);
   var iNum2=parseInt(vNum2);
   if(iNum1<iNum2)
   {
      return -1; 
   }
   else if(iNum1>iNum2)
   {
      return 1;
   }
   else
   {
     return 0;
   }
 
 }
 
    function clickOpen()
 {
      var arr=[3,32,2,5];
   arr.sort(compareInt);
   alert(arr.toString());
 }
</script>
</body>
</html>......

阅读全文(2039) | 评论:0

XQuery FLWOR + HTML(2008-10-05 16:09:00)

摘要: XML 实例文档 我们将在下面的例子中使用这个 "books.xml" 文档(与上一节中的文件相同)。 在您的浏览器中查看 "books.xml" 文件。 在一个 HTML 列表中提交结果 请看下面的 XQuery FLWOR 表达式:for $x in doc("books.xml")/bookstore/book/title order by $x return $x 上面的表达式会选取 bookstore 元素下的 book 元素下的所有 title 元素,并以字母顺序返回 title 元素。 现在,我们希望使用 HTML 列表列出我们的书店中所有的书目。我们向 FLWOR 表达式添加 <ul> 和 <li> 标签:<ul> { for $x in doc("books.xml")/bookstore/book/title order by $x return <li>{$x}</li> } </ul> 以上代码的结果:<ul> <li><title lang="en">Everyday Italian</title></li> <li><title lang="en">Harry Potter</title></li> <li><title lang="en">Learning XML</title></li> <li><title lang="en">XQuery Kick Start</title></li> </ul> 现在我们希望去除 title 元素,而仅仅显示 title 元素内的数据。<ul> { for $x in doc("books.xml")/bookstore/book/title order by $x return <li>{data($x)}</li> } </ul> 结果将是一个 HTML 列表:<ul> <li&......

阅读全文(1003) | 评论:0

XQuery FLWOR 表达式(2008-10-05 16:05:00)

摘要: XML 实例文档 我们将在下面的例子中使用这个 "books.xml" 文档(与上一节中的 XML 文件相同)。 在您的浏览器中查看 "books.xml" 文件。 如果使用 FLWOR 从 "books.xml" 选取节点 请看下面这个路径表达式:doc("books.xml")/bookstore/book[price>30]/title 上面这个表达式可选取 bookstore 元素下的 book 元素下所有的 title 元素,并且其中的 price 元素的值必须大于 30。 下面这个 FLWOR 表达式所选取的数据和上面的路径表达式是相同的:for $x in doc("books.xml")/bookstore/book where $x/price>30 return $x/title 结果是:<title lang="en">XQuery Kick Start</title> <title lang="en">Learning XML</title> 通过 FLWOR,您可以对结果进行排序:for $x in doc("books.xml")/bookstore/book where $x/price>30 order by $x/title return $x/title FLWOR 是 "For, Let, Where, Order by, Return" 的只取首字母缩写。 for 语句把 bookstore 元素下的所有 book 元素提取到名为 $x 的变量中。 where 语句选取了 price 元素值大于 30 的 book 元素。 order by 语句定义了排序次序。将根据 title 元素进行排序。 return 语句规定返回什么内容。在此返回的是 title 元素。 上面的 XQuery 表达式的结果:<title lang="en">Learning XML</title> <title lang="en">XQuery Kick Start</title>......

阅读全文(980) | 评论:0

XQuery 实例(2008-10-05 15:52:00)

摘要:本节,让我们通过研究一个例子来学习一些基础的 XQuery 语法。 XML 实例文档 我们将在下面的例子中使用这个 XML 文档。 "books.xml" :<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="en">XQuery Kick Start</title> <author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49.99</price> </boo......

阅读全文(910) | 评论:0

XQuery 简介(2008-10-05 15:49:00)

摘要: 解释XQuery最佳方式是这样讲:XQuery 相对于 XML 的关系,等同于 SQL 相对于数据库表的关系。 XQuery 被设计用来查询 XML 数据 - 不仅仅限于 XML 文件,还包括任何可以 XML 形态呈现的数据,包括数据库。 您应该具备的基础知识: 在您继续学习之前,需要对下面的知识有基本的了解: HTML / XHTML XML / XML 命名空间 XPath 如果您希望首先学习这些项目,请在我们的 首页 访问这些教程。 什么是 XQuery? XQuery 是用于 XML 数据查询的语言 XQuery 对 XML 的作用类似 SQL 对数据库的作用 XQuery 被构建在 XPath 表达式之上 XQuery 被所有主要的数据库引擎支持(IBM、Oracle、Microsoft等等) XQuery 是 W3C 标准。 XQuery 和 XML 查询有关 XQuery 是用来从 XML 文档查找和提取元素及属性的语言。 这是一个 XQuery 解决实际问题的例子: “从存储在名为 cd_catalog.xml 的 XML 文档中的 CD 集那里选取所有价格低于 10 美元的 CD 纪录。” XQuery 与 XPath XQuery 1.0 和 XPath 2.0 共享相同的数据模型,并支持相同的函数和运算符。假如您已经学习了 XPath,那么学习 XQuery 也不会有问题。 您可以在我们的《XPath 教程》中阅读更多有关 XPath 的知识。 XQuery - 应用举例 XQuery 可被用来: 提取信息以便在网络服务中使用 生成摘要报告 把 XML 数据转换为 XHTML 为获得相关信息而搜索网络文档 XQuery 是一个 W3C 推荐标准 XQuery 与多种 W3C 标准相兼容,比如 XML、Namespaces、XSLT、XPath 以及 XML Schema。 XQuery 1.0 在 2007年1月23日 被确立为 W3C 推荐标准。 如需获得更多有关 W3C 的 XQuery 活动的信息,请阅读我们的《W3C 教程》。......

阅读全文(897) | 评论:0