指针数组
像我在MAIN函数里定义了一个二维数组如:str 然后在数组中输入五个国家的英文,然后建一个函数 如 void sor(char *name[],int n) 接收MAIN函数中的二维数组,再将其按英文字母顺序排序,应该如何排,和如何把二维数组传给形参 *name[] 呢? 晕本来想用c写一个,发现我早已经把c给忘得差不多了,而且机子上连c编译器都没有。
只得用D写了一个,发出来凑贴数,你可以无视之。
import std.stdio;
void main(char[][] args){
for (int i=1; i<args.length; i++){
writefln(args[]);
}
writefln("---------Let's sort!---------");
args.sort;
for (int i=1; i<args.length; i++){
writefln(args[]);
}
}
运行结果
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:\\temp>s.exe show me the money
show
me
the
money
---------Let's sort!---------
me
money
show
the
我说的是指针数组这里好像没用到吧?
而且我想实现的排序是这样比如:
hongkong
beijing
london
indian
排序后
beijing
hongkong
indian
london
根据ASCII码比大小 你的设计思想就是错误的.按照你的思路,最终得到的代码最多如此.
#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 = {"China","Japan","England","American","Italy"};
char* pName = {NULL};
for (i = 0; i < TOTALNUM; ++i)
{
pName[ i ]=&cStr[ i-1 ];
}
sor(pName);
cout << pName <<endl;
getchar();
return 0;
}
注意数组作形参,会自动退化为指针. 你写得太专业了,而且还没学C++看不太懂 #include "stdio.h"
void sor(char **name)
{
// TODO:首字母排序
return ;
}
int main(void)
{
int i;
char cStr = {"China","Japan","England","American","Italy"};
char* pName = {NULL};
for (i = 0; i < 5; ++i)
{
pName[ i ]=&cStr[ i-1 ];
}
sor(pName);
printf("%s", pName);
printf("%s", pName);
printf("%s", pName);
return 0;
}
页:
[1]