CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

一道华为公司的面试题目.怎么把字符串转化为字节数组?

楼主nodefault(永不言败)2005-11-30 13:29:59 在 C/C++ / C语言 提问

一道华为公司的面试题目.怎么把字符串转化为字节数组?  
   
   
  比如 CString   *str="ABCD";(长度不确定的字符串)  (VC中)  
              或  
              char   *str="ABCD";(长度不确定的字符串)  (C语言中)  
     
   
  变为   byte   DATA[4];       (要求字节数组长度应和字符串一致)  
            DATA[0]='A';  
            DATA[1]='B';  
            DATA[2]='C';  
            DATA[3]='D'; 问题点数:10、回复次数:22Top

1 楼steedhorse(晨星)回复于 2005-11-30 13:34:35 得分 1

不太明白,是不是想让你这样:  
   
  使用CString::GetLength或者strlen得到字符串的长度;  
  根据长度动态申请一块足够的空间;  
  使用strcpy拷贝过去;  
  使用;  
  释放动态申请的空间。Top

2 楼nodefault(永不言败)回复于 2005-11-30 13:39:59 得分 0

字节数组的维数是动态的,不好定义!   怎么定义动态维数的?  
   
        字节实际上就是字符.Top

3 楼getter(getter)回复于 2005-11-30 13:40:37 得分 1

c:  
   
  char   *str='ABCD',*p=str;  
  byte   *b   =   (byte   *)   malloc(strlen(str)),*c=b;  
  while   (*p)   *c++=*p++;Top

4 楼steedhorse(晨星)回复于 2005-11-30 13:41:57 得分 1

哦,不对,不能用strcpy,说错了,没看情题意。Top

5 楼ssh000(如风似水)回复于 2005-11-30 13:43:29 得分 1

//   ssh.cpp   :   Defines   the   entry   point   for   the   console   application.  
  //  
   
  #include   "stdafx.h"  
  #include   <iostream.h>  
  #define   N   6  
   
  int   main(int   argc,   char*   argv[])  
  {  
  char   *p="abcde";  
  char   array[N];  
  for(int   i=0;i<N;i++)  
  {  
  array[i]=*p;  
  p++;  
  }  
  cout<<p-6<<endl;  
  cout<<array<<endl;  
  return   0;  
  }  
   
  Top

6 楼HelloIvan2005()回复于 2005-11-30 13:44:44 得分 1

#include   <iostream>  
  using   namespace   std;  
   
  char   OneChar(const   char*   pChar   =   0)  
  {  
  static   const   char*   psChar;  
  if(NULL   !=   pChar)  
  {  
  psChar   =   pChar;  
  return   *psChar;  
  }  
   
  if('\0'   !=   *psChar)  
  {  
  return   *psChar++;  
  }  
  else  
  {  
  return   0;  
  }  
  }  
   
  const   char*   pChar   =   "ABCD"   ;  
   
  void   main()  
  {  
  int   i   =   0;  
  char   Data[4];  
  char   c;  
  OneChar(pChar);  
  while((c   =   OneChar())   !=   0)  
  {  
  Data[i++]   =   c;  
  }  
  }Top

7 楼nodefault(永不言败)回复于 2005-11-30 13:46:15 得分 0

ssh000(如风似水)   :  
        这么定义肯定不行.我要动态维数的字节数组.  
        #define   N   6      
  Top

8 楼xdspower(杂食菜熊)回复于 2005-11-30 13:52:45 得分 1

如果没有语境,这题应该是考察字符串和字符数组的关系,实际上[]可以看作一个根据命名标识取地址上信息的运算符,既a[x]表示*(a+x)而已Top

9 楼HelloIvan2005()回复于 2005-11-30 13:59:03 得分 0

//动态字符维数  
  #include   <iostream>  
  using   namespace   std;  
   
  char   OneChar(const   char*   pChar   =   0)  
  {  
  static   const   char*   psChar;  
  if(NULL   !=   pChar)  
  {  
  psChar   =   pChar;  
  return   *psChar;  
  }  
   
  if('\0'   !=   *psChar)  
  {  
  return   *psChar++;  
  }  
  else  
  {  
  return   0;  
  }  
  }  
   
  const   char*   pChar   =   "ABCDE"   ;  
   
  void   main()  
  {  
  int   i   =   0;  
  char   *pData   =   new   char[strlen(pChar)];  
  char   c;  
  OneChar(pChar);  
  while((c   =   OneChar())   !=   0)  
  {  
  pData[i++]   =   c;  
  }  
   
  for(i   =   0;   i   <   strlen(pChar);   i++)  
  cout   <<   pData[i]   <<   endl;  
  }Top

10 楼nodefault(永不言败)回复于 2005-11-30 14:03:03 得分 0

我是楼主!  
   
      getter(getter)   的程序最简洁,但结果不正确.  
      在VC里运行的结果是:       结果=   x  
   
          char   *str="wdfuG",*p=str;  
          byte   *b   =   (byte   *)   malloc(strlen(str)),   *c=b;  
          while   (*p)   *c++=*p++;  
   
          m_value.Format("   =   %c",*b+1);Top

11 楼RainWindy(风雨交加)回复于 2005-11-30 14:14:56 得分 1

到目前为止还没有楼主的题目用意。Top

12 楼HelloIvan2005()回复于 2005-11-30 14:19:12 得分 0

#include   <iostream>  
  using   namespace   std;  
   
  void   main()  
  {  
  char*   pChar   =   "ABCDE";  
  char*   pData   =   new   char[strlen(pChar)   +   1];  
  int   i   =   0;  
  while(*pChar   !=   '\0')  
  {  
  pData[i++]   =   *pChar;  
  cout   <<   *pChar   <<   endl;  
  pChar++;  
  }  
  }Top

13 楼creative55(hansonlu)回复于 2005-11-30 15:33:20 得分 1

char   *str="wdfuG",*p=str;  
          byte   *b   =   (byte   *)   malloc(strlen(str)),   *c=b;  
          while   (*p!='\0')   *c++=*p++;Top

14 楼getter(getter)回复于 2005-11-30 23:19:07 得分 1

我是楼主!  
   
      getter(getter)   的程序最简洁,但结果不正确.  
      在VC里运行的结果是:       结果=   x  
   
          char   *str="wdfuG",*p=str;  
          byte   *b   =   (byte   *)   malloc(strlen(str)),   *c=b;  
          while   (*p)   *c++=*p++;  
   
          m_value.Format("   =   %c",*b+1);  
  -----------------------------------------------------  
  樓主,*b='w',你加一,當然等於'x',但還是不明你的意思是甚麼...  
   
  =.=   byte是甚麼?我在dev-c++不能運行Top

15 楼huwei001982(凶猛的小狗)回复于 2005-12-01 07:55:29 得分 1

char   *p   =   "ABC";  
  unsigned   char   *sz   =   new   unsigned   char[strlen(p)];  
  memcpy(sz,   p,   strlen(p));  
   
  楼主你别说   unsigned   char   不是   BYTETop

16 楼huwei001982(凶猛的小狗)回复于 2005-12-01 07:56:15 得分 0

其实这道题是没有意义的,   在C里,   字符串不就是字符的数组吗???Top

17 楼shootingstars(有容乃大,无欲则刚)回复于 2005-12-01 08:52:53 得分 0

呵呵,楼上的说得是。  
   
  在c中没有字符串这种类型,字符串就是字符数组,只不过以0结尾而已。  
   
  你直接byte   *DATA   =   str不就可以了么?  
   
  结果肯定真确   8-)  
            DATA[0]='A';  
            DATA[1]='B';  
            DATA[2]='C';  
            DATA[3]='D';  
   
   
  对了,在c中有byte这种类型吗?Top

18 楼manplus(魅力加加)回复于 2005-12-01 11:58:00 得分 0

markTop

19 楼kidonline(扬帆)回复于 2005-12-01 14:51:15 得分 0

呵呵,c中没有byte这个类型Top

20 楼EnginePlus(额外动力)回复于 2005-12-01 16:05:04 得分 0

?不就是要字符数组么?  
   
  std::string   m_str="ABCD";  
  const   char   *m_char   =   m_str.c_str();  
   
  //   差不多就OK了吧  
   
  你访问   std::cout<<*m_char;     输出   的就是A  
  m_char++;  
  std:cout<<*m_char;   输出就是B啦  
   
  你再做个循环   把   *m_char   赋给一个   字符数组[]   里去Top

21 楼note_code(天坠)回复于 2005-12-01 17:19:34 得分 0

学习Top

22 楼jordan1(班君)回复于 2005-12-01 19:27:01 得分 0

studyTop

相关问题

  • 一道华为公司的面试题目.怎么把字符串转化为字节数组?
  • 请问如何统计字符串的字节数???
  • 怎么将字符串赋给字节数组???
  • #####请教如何用T-SQL求字符串存储的字节数?#####
  • 怎么获得字符串的长度(字节数)?
  • 如何转换双字节数字字符串
  • 字符串转换为字节数组的问题
  • 如何取字符串(含汉字)中的字节数?
  • 如何 将 字节数组转化成字符串
  • 如何获得字符串的字节数?

关键词

  • 字符
  • pschar
  • 字符串
  • pchar
  • onechar
  • 维数
  • abcde
  • 字节数组
  • 动态
  • 长度

得分解答快速导航

  • 帖主:nodefault
  • steedhorse
  • getter
  • steedhorse
  • ssh000
  • HelloIvan2005
  • xdspower
  • RainWindy
  • creative55
  • getter
  • huwei001982

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo