幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2363|回复: 5

[通用编程] 指针数组

[复制链接]

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
发表于 2007-7-11 10:17:09 | 显示全部楼层 |阅读模式
像我在MAIN函数里定义了一个二维数组如:str[5][20]   然后在数组中输入五个国家的英文,
然后建一个函数 如 void sor(char *name[],int n)    接收MAIN函数中的二维数组,再将其按英文字母顺序排序,应该如何排,和如何把二维数组传给形参 *name[] 呢?
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2007-7-11 11:09:40 | 显示全部楼层
晕本来想用c写一个,发现我早已经把c给忘得差不多了,而且机子上连c编译器都没有。
只得用D写了一个,发出来凑贴数,你可以无视之。
  1. import std.stdio;
  2. void main(char[][] args){
  3.    
  4.     for (int i=1; i<args.length; i++){
  5.         writefln(args[i][]);
  6.     }
  7.    
  8.     writefln("---------Let's sort!---------");
  9.     args.sort;
  10.    
  11.     for (int i=1; i<args.length; i++){
  12.         writefln(args[i][]);
  13.     }
  14. }
复制代码
运行结果
  1. Microsoft Windows XP [版本 5.1.2600]
  2. (C) 版权所有 1985-2001 Microsoft Corp.
  3. C:\\temp>s.exe show me the money
  4. show
  5. me
  6. the
  7. money
  8. ---------Let's sort!---------
  9. me
  10. money
  11. show
  12. the
复制代码
え~え~お!!!
回复 支持 反对

使用道具 举报

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
 楼主| 发表于 2007-7-11 11:20:03 | 显示全部楼层
我说的是指针数组这里好像没用到吧? [s:4]
而且我想实现的排序是这样比如:
hongkong
beijing
london
indian

排序后
beijing
hongkong
indian
london
根据ASCII码比大小
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复 支持 反对

使用道具 举报

7

主题

190

帖子

1766

积分

⑥精研

....

积分
1766
发表于 2007-7-11 11:36:46 | 显示全部楼层
你的设计思想就是错误的.按照你的思路,最终得到的代码最多如此.
#include <iostream>
using namespace std;

const int TOTALNUM = 5;

static void __cdecl sor(char **name)
{
    return ;

}

int _tmain(int argc, _TCHAR* argv[])
{
    int i;
    char cStr[TOTALNUM][10] = {"China","Japan","England","American","Italy"};
    char* pName[TOTALNUM] = {NULL};

    for (i = 0; i < TOTALNUM; ++i)
    {
        pName[ i ]=&cStr[ i-1 ][10];
    }
    sor(pName);

    cout << pName[TOTALNUM - 1] <<endl;   
    getchar();
    return 0;
}

注意数组作形参,会自动退化为指针. [s:5]
萝卜啊,白菜啊,土豆星啊,梦想有爱啊。
回复 支持 反对

使用道具 举报

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
 楼主| 发表于 2007-7-11 11:47:45 | 显示全部楼层
你写得太专业了,而且还没学C++看不太懂 [s:5]  [s:5]
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复 支持 反对

使用道具 举报

7

主题

190

帖子

1766

积分

⑥精研

....

积分
1766
发表于 2007-7-11 13:20:35 | 显示全部楼层
#include &quot;stdio.h&quot;


void sor(char **name)
{
// TODO:首字母排序
    return ;
}

int main(void)
{
    int i;
    char cStr[5][10] = {&quot;China&quot;,&quot;Japan&quot;,&quot;England&quot;,&quot;American&quot;,&quot;Italy&quot;};
    char* pName[5] = {NULL};

    for (i = 0; i &lt; 5; ++i)
    {
        pName[ i ]=&cStr[ i-1 ][10];
    }
    sor(pName);

printf(&quot;%s&quot;, pName[3]);
printf(&quot;%s&quot;, pName[2]);
printf(&quot;%s&quot;, pName[1]);

    return 0;
}

[s:5]
萝卜啊,白菜啊,土豆星啊,梦想有爱啊。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-2 13:42 , Processed in 0.019615 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表