当前位置:首页
开发技术指南» 文章正文
    引言:

 ·自动生成控件排列问题    »显示摘要«
    摘要: for(int m=0;m<3;m++) { textbox tb=new textbox(); tb.id="tb"+m; tb.text="tb"+m; tablecell tc=new tablecell(); tc.controls.add(tb); tabl......
 ·如何得到重复概率低的值    »显示摘要«
    摘要: 要求不受安全权限限制, 但如 浏览器,操作系统 这类值相同的太多。 有没有概率低一点的 ......


如何用strcopy函数把二维数组的一行字符串赋给一个数组

比如:  
  unsigned   char   hz[2][18]={  
  {"我明白你是什么意思"},  
  {"你的意思到底是什么"}  
  };  
   
  unsigned   char   result1[];  
   
  我想把第二行的字符串拷到一个数组里,要用strcpy函数,怎么做?  
   
  strcpy(result,hz[1]);  
  strcpy(result,(unsigned   char   *)hz[1]);  
   
  怎么上面这两种方式都不行呢?

NO.1   作者: snowbirdfly

这样可以吧~~  
  #include   <iostream>  
  #include   <cstring>  
  #include   <windows.h>  
   
  using   namespace   std;  
   
  char   hz[2][100]={  
  {"我明白你是什么意思"},  
  {"你的意思到底是什么"}  
  };  
   
  int   main()  
  {  
  char   ch[100];  
  strcpy(ch,hz[1]);  
  cout<<ch<<endl;  
   
  system("pause");  
  return   0;  
  }

NO.2   作者: xfgang

你没有对result1[]分配他的长度啊,  
  而且分配的长度还的足够放得下那两个数组的长度.  
 

NO.3   作者: snowbirdfly

要是使用unsigned   char   result1[];  
  那与函数strcpy参数类型不同~  
  可以类型强制转换~~  
  #include   <iostream>  
  #include   <cstring>  
  #include   <windows.h>  
   
  using   namespace   std;  
   
  unsigned   char   hz[2][100]={  
  {"我明白你是什么意思"},  
  {"你的意思到底是什么"}  
  };  
   
  int   main()  
  {  
  char   ch[100];  
  strcpy(ch,(char   *)hz[1]);  
  cout<<ch<<endl;  
   
  system("pause");  
  return   0;  
  }

NO.4   作者: ypdxcn

18改为19

NO.5   作者: snowbirdfly

是啊~  
  一个方面是这样~  
  编译会有错误提示~~  
  数组大小未知~~  
  另一方面,  
  unsigned   char   hz[2][18]={//18太小了~~  
 

NO.6   作者: zxwl

一.  
  unsigned   char   hz[2][18]={  
  "我明白你是什么意思"已经是18字节,还要\0那  
  二.  
  strcpy函数的原型是  
  char   *strcat(char   *s1,   const   char   *s2);  
  第一个参数要是char*的,你用的是unsigned   char  
   
  #include   <iostream.h>  
   
  int   main()  
  {  
  unsigned   char   hz[2][20]={  
  {"我明白你是什么意思"},  
  {"你的意思到底是什么"}  
  };  
  char   result1[100];  
  strcpy(result1,(const   char   *)hz[1]);  
  cout   <<   result1   <<   endl;  
  return   0;  
  }  
 

NO.7   作者: zxwl

如果非要用unsigned   char  
  try   this:  
   
  #include   <iostream.h>  
   
  int   main()  
  {  
  unsigned   char   hz[2][20]={  
  {"我明白你是什么意思"},  
  {"你的意思到底是什么"}  
  };  
  unsigned   char   result1[100]   =   {"初始化而已"};  
  const   char*   ccpp   =   (const   char*)hz[1];  
  char*   cp   =   (char*)result1;  
   
  strcpy(cp,ccpp);  
   
  //cout   <<   cp   <<   endl;  
  cout   <<   (char*)   result1   <<   endl;  
   
  return   0;  
  }


 ·asp.net调试问题。    »显示摘要«
    摘要: 运行vs.net c#进行调试时,总是报错“无法在 web 服务器上启动调试”,到底是什么原因呢,再往上查资料,一直没得到解决。郁闷。高手给指点一下! ......
» 本期热门文章:
· 热门栏目:
» 相关精选文章
» 其它相关:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE