首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

头疼的指针有关问题

2012-02-16 
头疼的指针问题?C/C++ code#includestdio.h#includestdlib.h#includestring.h#define N 20/*struct

头疼的指针问题?

C/C++ code
#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 20/*struct studentchange//定义结构体,将student中的定长记录改成变长记录{string name;string num;string age;string sex;};*/typedef struct studentchange//定义结构体,将student中的定长记录改成变长记录{char* name;char* num;char* tel;char* age;char* sex;}stud;struct studentindex//分别记录各个属性的长度,建立索引{int namelen;int numlen;int tellen;int agelen;int sexlen;int toallen;//一条记录的总共长度}studindex[N];stud studchange2[N];//存储从文件中读出来的记录信息/*struct studentc//记录每个studentindenx对象的长度{struct }*///定义一个为一页大小的块char buffer[1024];int contentlen;//一条记录的长度int contentlentotal=0;//所有记录的总长度;    void strcopy(char a[],char b[],int n,int m);int main(){  //int attrLength(char*);    char content[100];    int i,j;//定义通讯录stud stud[]={"Li","1001","18810366100","18","f",             "Fun","1002","18810366101","19","m",             "Wang1","1003","18810366102","17","f",             "hei","1004","18810366103","18","f",             "Gao","1005","18810366104","19","m",             "Yu","1006","18810366105","17","f",             "Feng","1007","18810366103","18","f",             "Dou","1008","18810366104","19","m",             "Wang2","1009","18810366105","17","f" ,             "Er","1010","18810366103","18","f",             "San","1011","18810366104","19","m",             "Zhao","1012","18810366105","17","f",             "Qian","1013","18810366103","18","f",             "Sun","1014","18810366104","19","m",             "Li2","1015","18810366105","17","f",             "Zhou","1016","18810366103","18","f",             "Zheng","1017","18810366104","19","m",             "Zhu","1018","18810366105","17","f" ,             "Xiaobai","1019","18810366103","18","f",             "Meng","1020","18810366105","17","f"};//fstream iofile("studchange.dat",ios::in|ios::out|ios::binary);FILE *pf;if((pf=fopen("studchange.dat","ab+"))==NULL)//判断文件是否打开成功,一条记录一条记录追加printf("无法打开文件!");    for(i=0;i<N;i++){//为所有字段建立索引studindex[i].namelen=strlen(stud[i].name);printf("看看第%d条记录的姓名长度是:%d\n",i,studindex[i].namelen);// 测试一下studindex[i].numlen=strlen(stud[i].num);printf("看看第%d条记录的学号长度是:%d\n",i,studindex[i].numlen);// 测试一下studindex[i].tellen=strlen(stud[i].tel);printf("看看第%d条记录的电话长度是:%d\n",i,studindex[i].tellen);// 测试一下printf("0\n");studindex[i].agelen=strlen(stud[i].age);printf("0\n");studindex[i].sexlen=strlen(stud[i].sex);printf("看看第%d条记录的性别长度是:%d\n",i,studindex[i].sexlen);// 测试一下studindex[i].toallen=studindex[i].namelen+studindex[i].numlen+studindex[i].tellen+studindex[i].agelen+studindex[i].sexlen;printf("1\n");strcpy(content,stud[i].name);//将记录的各个属性拼接到一起printf("2\n");strcat(content,stud[i].num);strcat(content,stud[i].tel);strcat(content,stud[i].age);strcat(content,stud[i].sex);printf("看看第%d条记录的总信息是:%s\n",i,content);contentlen=strlen(content);//一条记录的长度fwrite(content,contentlen,1,pf);//将所有的记录写入文件中contentlentotal+=contentlen;contentlen=0;}fclose(pf);printf("\n");void query();void display();void update();char op;while(1){    printf("*         Menu  selection                *\n");    printf("*              1.query                   *\n");    printf("*              2.display                 *\n");    printf("*              3.update                  *\n");    printf("*              4.exit                    *\n");    printf("* ****************************************\n");    printf("*  Please  enter  selection:*");    scanf("%c",&op);    switch(op)    {    case '1':query();        break;    case '2':display();        break;    case '3':update();        break;    case '4':return 0;    }    getchar();}return 0;        }void display()      //打印文件中通讯录信息,并把读出来得记录放到结果体对象studchange2中。{    int i;    FILE *pf2;if((pf2=fopen("studchange.dat","r+b"))==NULL)//判断文件是否打开成功,一条记录一条记录追加printf("无法打开文件!");char name[10];char num[10];char tel[20];char age[10];char sex[10];//将的信息输出到一个字符串中即可。int bufferlen=0;fread(buffer,contentlentotal,1,pf2);//将文件中的记录信息读到缓冲区中。printf("所有内容的长度是:%d\n",contentlentotal);printf("所有的记录信息是:%s\n",buffer);printf("****************            通讯录       ******************\n");printf("姓名       学号      电话       年龄        性别\n");for(i=0;i<N;i++) //按照索引从文件中读出相应的记录,并把该记录复制给相应的结构体变量存储,便于其他操作。{int j;//指向buffer中各个字符信息 strcopy(name,buffer,bufferlen,studindex[i].namelen);//将记录的一个属性提取出来 studchange2[i].name=name;//将该条记录的该属性保存起来。 bufferlen+=studindex[i].namelen;strcopy( num,buffer,bufferlen,studindex[i].numlen);//将记录的一个属性提取出来 studchange2[i].num=num;//将该条记录的该属性保存起来。 bufferlen+=studindex[i].numlen;strcopy(tel,buffer,bufferlen,studindex[i].tellen);//将记录的一个属性提取出来 studchange2[i].tel=tel;//将该条记录的该属性保存起来。 bufferlen+=studindex[i].tellen;strcopy( age,buffer,bufferlen,studindex[i].agelen);//将记录的一个属性提取出来 studchange2[i].age=age;//将该条记录的该属性保存起来。bufferlen+=studindex[i].agelen;strcopy( sex,buffer,bufferlen,studindex[i].sexlen);//将记录的一个属性提取出来 studchange2[i].sex=sex;//将该条记录的该属性保存起来。bufferlen+=studindex[i].sexlen;printf("%s,%s,%s,%s,%s\n",studchange2[i].name,studchange2[i].num,studchange2[i].tel,studchange2[i].age,studchange2[i].sex);printf("\n");}//for循环}//函数体void query(){     int i;    //void see1(struct student *p);//    struct student *p;int method;char name[10];char num[10];char tel[20];char age[10];char sex[10];    while(1)    {            printf("*               Menu  selection                          *\n");        printf("*                请选择查询方式                          *\n");        printf("*                 1.按姓名查询                           *\n");        printf("*                 2.按学号查询                           *\n");        printf("*                 3.按电话查询                           *\n");        printf("*                 4.按年龄查询                           *\n");        printf("*                 5.按性别查询                           *\n");        printf("*                 6.返回主菜单                           *\n");        printf("*  *********************************************************\n");scanf("%d",&method);switch(method){        case 1:            printf("请输入要查询的name:\n");            scanf("%s",&name);            //printf("看看比较结果是:%d\n",strcmp(studchange2[0].name,name));            for(i=0;i<N;i++){    //首先将信息提取出if(!strcmp(studchange2[i].name,name))printf("name:%s\n",studchange2[i].name);printf("num:%s\n",studchange2[i].num);printf("tel:%s\n",studchange2[i].tel);printf("age:%s\n",studchange2[i].age);printf("sex:%s\n",studchange2[i].sex);printf("\n");}        break;                case 2:            printf("*  请输入要查询的学号:\n");            scanf("%s",&num);for(i=0;i<N;i++){    if(!strcmp(studchange2[i].num,num)){printf("name:%s\n",studchange2[i].name);printf("num:%s\n",studchange2[i].num);printf("name:%s\n",studchange2[i].tel);printf("age:%s\n",studchange2[i].age);printf("sex:%s\n",studchange2[i].sex);printf("\n");}}        break;        case 3:                printf("*  请输入要查询的电话\n");            scanf("%s",&tel);for(i=0;i<N;i++){    if(!strcmp(studchange2[i].tel,tel)){printf("name:%s\n",studchange2[i].name);printf("num:%s\n",studchange2[i].num);printf("name:%s\n",studchange2[i].tel);printf("age:%s\n",studchange2[i].age);printf("sex:%s\n",studchange2[i].sex);printf("\n");}}        break;        case 4:            printf("*  请输入要查询的年龄\n");            scanf("%s",&age);            for(i=0;i<N;i++){    //首先将信息提取出来    if(!strcmp(studchange2[i].age,age)){printf("name:%s\n",studchange2[i].name);printf("num:%s\n",studchange2[i].num);printf("name:%s\n",studchange2[i].tel);printf("age:%s\n",studchange2[i].age);printf("sex:%s\n",studchange2[i].sex);printf("\n");}            }                break;        case 5:            printf("*  请输入要查询的性别\n");            scanf("%s",&sex);printf("姓名       学号      电话       年龄        性别\n");        for(i=0;i<N;i++){    if(!strcmp(studchange2[i].sex,sex)){printf("%s,%s,%s,%s,%s",studchange2[i].name,studchange2[i].num,studchange2[i].tel,studchange2[i].age,studchange2[i].sex);printf("\n");}        }            break;        default:return;                                        }        }    }//将字符数组第m个到第n个字符copy到另外一个字符数组中void strcopy(char a[],char b[],int n,int m){  memcpy(a,&b[n],m);  a[m]='\0';}void update(){} 





代码有点长,但是只需要大家看两个函数就行了:display() 和 query(),
 问题很简单:
在display()函数中:
C/C++ code
printf("%s,%s,%s,%s,%s\n",studchange2[i].name,studchange2[i].num,studchange2[i].tel,studchange2[i].age,studchange2[i].sex);

能正确输出文件中得记录信息,
但是在query()函数中:
C/C++ code
    if(!strcmp(studchange2[i].age,age)){printf("name:%s\n",studchange2[i].name);printf("num:%s\n",studchange2[i].num);printf("name:%s\n",studchange2[i].tel);printf("age:%s\n",studchange2[i].age);printf("sex:%s\n",studchange2[i].sex);}

不能正确输出记录的信息,显示的是乱码

这是为什么啊????我将所有的记录信息都已经保存在结构体数组stud studchange2[N]中,
为什么两次提取出来的结果会不一致了???

[解决办法]
studchange2[i].name=name;//将该条记录的该属性保存起来。

你把局部变量赋给它没有用的。退出函数后,这块空间已经无效了。
需要new 出来,strcpy

studchange2[i].name = new char[strlen(name)];
if(studchange2[i].name)
{
strcpy(studchange2[i].name, name);
}
[解决办法]
学习一下汇编你就懂了 不解释

[解决办法]
探讨

引用:
studchange2[i].name=name;//将该条记录的该属性保存起来。

你把局部变量赋给它没有用的。退出函数后,这块空间已经无效了。
需要new 出来,strcpy

studchange2[i].name = new char[strlen(name)];
if(studchange2[i].name)
{
strcpy……

[解决办法]
用malloc()
studchange2[i].name = malloc(sizeof(studchange2[i].name));
相当于你指定了一个内存地址给这个指针。
ps:赋值时不能直接让这个指针指向源数据,而要用memcpy(),将值拷到指针内存中才能在退出函数后,保存数据。
[解决办法]
乱码肯定是值的地方错了啊,,,你传值或者拷贝的地方好好看看啊~~~~
[解决办法]
typedef struct studentchange//定义结构体,将student中的定长记录改成变长记录
{
char* name;
char* num;
char* tel;
char* age;
char* sex;
}stud;
在初始化时,是不是应该先对该结构体的成员申请空间。
[解决办法]
用红色部分标记的是在你源代码基础上新增的
[code=C/C]
  for(i=0;i <N;i++)
  {
    //为所有字段建立索引
    ...
    printf("2\n");
    strcat(content,stud[i.num);
    strcat(content,stud[i].tel);
    strcat(content,stud[i].age);
    strcat(content,stud[i].sex);
    printf("看看第%d条记录的总信息是:%s\n",i,content);
    contentlen=strlen(content);//一条记录的长度
    fwrite(content,contentlen,1,pf);//将所有的记录写入文件中
    contentlentotal+=contentlen;
    contentlen=0;

    [color=#FF0000]studchange2[i].name = (char *)malloc(20);
    studchange2[i].num = (char *)malloc(20);
    studchange2[i].tel = (char *)malloc(20);
    studchange2[i].age = (char *)malloc(20);
    studchange2[i].sex = (char *)malloc(20);[/color]
  }

  void query();
  void display();
  void update();

  char op;
  [color=#FF0000]display();[/color]
  while(1)
  {
    printf("*    Menu  selection        *\n");
    printf("*        1.query          *\n");


    printf("*        2.display        *\n");
    printf("*        3.update          *\n");
    printf("*        4.exit          *\n");
    printf("* ****************************************\n");
    printf("*  Please  enter  selection:*");
    scanf("%c",&op);
    switch(op)
    {
    case '1':query();
      break;
    case '2':display();
      break;
    case '3':update();
      break;
    case '4':return 0;
    }

    getchar();
  }

void display()    //打印文件中通讯录信息,并把读出来得记录放到结果体对象studchange2中。
{
  int i;
  FILE *pf2;
  if((pf2=fopen("studchange.dat","r+b"))==NULL)//判断文件是否打开成功,一条记录一条记录追加
  printf("无法打开文件!");


  char name[10];
  char num[10];
  char tel[20];
  char age[10];
  char sex[10];

  //将的信息输出到一个字符串中即可。
  int bufferlen=0;
  fread(buffer,contentlentotal,1,pf2);//将文件中的记录信息读到缓冲区中。
  printf("所有内容的长度是:%d\n",contentlentotal);
  printf("所有的记录信息是:%s\n",buffer);


  printf("****************      通讯录    ******************\n");
  printf("姓名    学号    电话    年龄    性别\n");
  for(i=0;i <N;i++) //按照索引从文件中读出相应的记录,并把该记录复制给相应的结构体变量存储,便于其他操作。
  {
    int j;//指向buffer中各个字符信息

    strcopy(name,buffer,bufferlen,studindex[i].namelen);//将记录的一个属性提取出来
  [color=#FF0000] sprintf(studchange2[i].name,name);[/color]
    bufferlen+=studindex[i].namelen;

    strcopy( num,buffer,bufferlen,studindex[i].numlen);//将记录的一个属性提取出来
    [color=#FF0000]sprintf(studchange2[i].num,num);[/color]
    bufferlen+=studindex[i].numlen;

    strcopy(tel,buffer,bufferlen,studindex[i].tellen);//将记录的一个属性提取出来
    [color=#FF0000]sprintf(studchange2[i].tel,tel);[/color]
    bufferlen+=studindex[i].tellen;

    strcopy( age,buffer,bufferlen,studindex[i].agelen);//将记录的一个属性提取出来
    [color=#FF0000]sprintf(studchange2[i].age,age);[/color]
    bufferlen+=studindex[i].agelen;

    strcopy( sex,buffer,bufferlen,studindex[i].sexlen);//将记录的一个属性提取出来
    [color=#FF0000]sprintf(studchange2[i].sex,sex);[/color]
    bufferlen+=studindex[i].sexlen;
    printf("%s,%s,%s,%s,%s\n",studchange2[i].name,studchange2[i].num,studchange2[i].tel,studchange2[i].age,studchange2[i].sex);
    printf("\n");

  }//for循环

}//函数体

void query()
{
 
    switch(method)
    {
    case 1:
      printf("请输入要查询的name:\n");
      scanf("%s",&name);
      //printf("看看比较结果是:%d\n",strcmp(studchange2[0].name,name));
     
      for(i=0;i <N;i++)
      {  //首先将信息提取出
        [color=#FF0000]if(!strcmp(studchange2[i].name,name))
        {
          printf("name:%s\n",studchange2[i].name);


          printf("num:%s\n",studchange2[i].num);
          printf("tel:%s\n",studchange2[i].tel);
          printf("age:%s\n",studchange2[i].age);
          printf("sex:%s\n",studchange2[i].sex);
          printf("\n");
        }[/color]
      }
      break;
 
[/code]
[解决办法]

探讨

引用:
用红色部分标记的是在你源代码基础上新增的
[code=C/C]
for(i=0;i <N;i++)
{
//为所有字段建立索引
...
printf("2\n");
strcat(content,stud[i.num);
strcat(……

[解决办法]
探讨

引用:
引用:

引用:
用红色部分标记的是在你源代码基础上新增的
[code=C/C]
for(i=0;i <N;i++)
{
//为所有字段建立索引
...
printf("2\n");
strcat(content,stud[i.num);
strc……

[解决办法]
C/C++ code
#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 1typedef struct studentchange//定义结构体,将student中的定长记录改成变长记录{    char name[10];    char num[10];    char tel[20];    char age[3];    char sex[2];}stud;struct studentindex {    int namelen;    int numlen;    int tellen;    int agelen;    int sexlen;    int toallen; }studindex[N];stud studchange2[N];  char buffer[1024];int contentlen; int contentlentotal=0; void strcopy(char a[],char b[],int n,int m);int main(){       char content[100];    int op;    int i;    stud stud[]=    {        "Li","1001","18810366100","18","f",        "Fun","1002","18810366101","19","m",        "Wang1","1003","18810366102","17","f",        "hei","1004","18810366103","18","f",        "Gao","1005","18810366104","19","m",        "Yu","1006","18810366105","17","f",        "Feng","1007","18810366103","18","f",        "Dou","1008","18810366104","19","m",        "Wang2","1009","18810366105","17","f" ,        "Er","1010","18810366103","18","f",        "San","1011","18810366104","19","m",        "Zhao","1012","18810366105","17","f",        "Qian","1013","18810366103","18","f",        "Sun","1014","18810366104","19","m",        "Li2","1015","18810366105","17","f",        "Zhou","1016","18810366103","18","f",        "Zheng","1017","18810366104","19","m",        "Zhu","1018","18810366105","17","f" ,        "Xiaobai","1019","18810366103","18","f",        "Meng","1020","18810366105","17","f"    };    FILE *pf;    if((pf=fopen("studchange.dat","ab+"))==NULL) //判断文件是否打开成功,一条记录一条记录追加        printf("无法打开文件!");            for(i=0;i<N;i++)    {                 studindex[i].namelen=strlen(stud[i].name);        studindex[i].numlen=strlen(stud[i].num);        studindex[i].tellen=strlen(stud[i].tel);        studindex[i].agelen=strlen(stud[i].age);        studindex[i].sexlen=strlen(stud[i].sex);        studindex[i].toallen=studindex[i].namelen+studindex[i].numlen+studindex[i].tellen+studindex[i].agelen+studindex[i].sexlen;        strcpy(content,stud[i].name);         strcat(content,stud[i].num);        strcat(content,stud[i].tel);        strcat(content,stud[i].age);        strcat(content,stud[i].sex);        printf("总计%d条记录的信息为:%s\n",i+1,content);        contentlen=strlen(content);//一条记录的长度        fwrite(content,contentlen,1,pf);//将所有的记录写入文件中        contentlentotal+=contentlen;        contentlen=0;    }    fclose(pf);    printf("\n");            void query();    void display();    void update();    display();        while(1)    {                        printf("*         Menu  selection                *\n");        printf("*              1.query                   *\n");        printf("*              2.display                 *\n");        printf("*              3.update                  *\n");        printf("*              4.exit                    *\n");        printf("* ****************************************\n");        printf("*  Please  enter  selection:*");        scanf("%d",&op);        switch(op)        {        case 1:query();            break;        case 2:display();            break;        case 3:update();            break;        case 4:return 0;        }                getchar();    }    return 0;    }void display()      //打印文件中通讯录信息,并把读出来得记录放到结果体对象studchange2中。{    int i;    FILE *pf2;    if((pf2=fopen("studchange.dat","r+b"))==NULL)//判断文件是否打开成功,一条记录一条记录追加        printf("无法打开文件!");            char name[10];    char num[10];    char tel[20];    char age[10];    char sex[10];        //将的信息输出到一个字符串中即可。    int bufferlen=0;    fread(buffer,contentlentotal,1,pf2);//将文件中的记录信息读到缓冲区中。    printf("所有内容的长度是:%d\n",contentlentotal);    printf("所有的记录信息是:%s\n",buffer);            printf("****************            通讯录       ******************\n");    printf("姓名       学号      电话       年龄        性别\n");    for(i=0;i<N;i++)     {        strcopy(name,buffer,bufferlen,studindex[i].namelen);        memcpy(studchange2[i].name,name,studindex[i].namelen);         bufferlen+=studindex[i].namelen;                        strcopy( num,buffer,bufferlen,studindex[i].numlen);             memcpy(studchange2[i].num,num,studindex[i].numlen);         bufferlen+=studindex[i].numlen;                        strcopy(tel,buffer,bufferlen,studindex[i].tellen);        memcpy(studchange2[i].tel,tel,studindex[i].tellen);         bufferlen+=studindex[i].tellen;                                        strcopy(age,buffer,bufferlen,studindex[i].agelen);        memcpy(studchange2[i].age,age,studindex[i].agelen);         bufferlen+=studindex[i].agelen;                strcopy( sex,buffer,bufferlen,studindex[i].sexlen);        memcpy(studchange2[i].sex,sex,studindex[i].sexlen);             bufferlen+=studindex[i].sexlen;        printf("%s,%s,%s,%s,%s\n",studchange2[i].name,studchange2[i].num,studchange2[i].tel,studchange2[i].age,studchange2[i].sex);        printf("\n");        }}void query(){     int i;    //void see1(struct student *p);    //    struct student *p;    int method;    char name_test[10];    char num_test[10];    char tel_test[20];    char age_test[10];    char sex_test[10];    while(1)    {                printf("*               Menu  selection                          *\n");        printf("*                请选择查询方式                          *\n");        printf("*                 1.按姓名查询                           *\n");        printf("*                 2.按学号查询                           *\n");        printf("*                 3.按电话查询                           *\n");        printf("*                 4.按年龄查询                           *\n");        printf("*                 5.按性别查询                           *\n");        printf("*                 6.返回主菜单                           *\n");        printf("*  *********************************************************\n");                scanf("%d",&method);        switch(method)        {        case 1:            printf("请输入要查询的name:\n");            scanf("%s",&name_test);            //printf("看看比较结果是:%d\n",strcmp(studchange2[0].name,name));                        for(i=0;i<N;i++)            {    //首先将信息提取出                //if(memcmp(studchange2[i].name,name,strlen(name)==0))            //    {                    printf("name:%s\n",studchange2[i].name);                printf("num:%s\n",studchange2[i].num);                printf("tel:%s\n",studchange2[i].tel);                printf("age:%s\n",studchange2[i].age);                printf("sex:%s\n",studchange2[i].sex);                printf("\n");            //    }            }                        break;                    case 2:            printf("*  请输入要查询的学号:\n");            scanf("%s",&num_test);            for(i=0;i<N;i++)            {                if(!strcmp(studchange2[i].num,num_test))                {                    printf("name:%s\n",studchange2[i].name);                    printf("num:%s\n",studchange2[i].num);                    printf("name:%s\n",studchange2[i].tel);                    printf("age:%s\n",studchange2[i].age);                    printf("sex:%s\n",studchange2[i].sex);                    printf("\n");                }            }            break;                    case 3:            printf("*  请输入要查询的电话\n");            scanf("%s",&tel_test);            for(i=0;i<N;i++)            {                if(!strcmp(studchange2[i].tel,tel_test))                {                    printf("name:%s\n",studchange2[i].name);                    printf("num:%s\n",studchange2[i].num);                    printf("name:%s\n",studchange2[i].tel);                    printf("age:%s\n",studchange2[i].age);                    printf("sex:%s\n",studchange2[i].sex);                    printf("\n");                }            }            break;        case 4:            printf("*  请输入要查询的年龄\n");            scanf("%s",&age_test);            for(i=0;i<N;i++)            {                //首先将信息提取出来                                                                if(!strcmp(studchange2[i].age,age_test))                {                    printf("name:%s\n",studchange2[i].name);                    printf("num:%s\n",studchange2[i].num);                    printf("name:%s\n",studchange2[i].tel);                    printf("age:%s\n",studchange2[i].age);                    printf("sex:%s\n",studchange2[i].sex);                    printf("\n");                }            }                        break;                    case 5:            printf("*  请输入要查询的性别\n");            scanf("%s",&sex_test);                        printf("姓名       学号      电话       年龄        性别\n");            for(i=0;i<N;i++)            {                if(!strcmp(studchange2[i].sex,sex_test))                {                    printf("%s,%s,%s,%s,%s",studchange2[i].name,studchange2[i].num,studchange2[i].tel,studchange2[i].age,studchange2[i].sex);                    printf("\n");                }            }                break;        default:return;                                            }                    }        }            //将字符数组第m个到第n个字符copy到另外一个字符数组中    void strcopy(char a[],char b[],int n,int m)    {        memcpy(a,&b[n],m);        a[m]='\0';    }                void update()    {} 

热点排行