char* toASCII(char * str)
{
   CString ascstr;
   char *buf[3];
   int loop, lenth=strlen(str);
   for(loop=0;loop<lenth;loop++)
   {
      
      sprintf(buf,"%d",str[loop]);
      ascstr+=buf;
    }
   return ascstr.Getbuf(ascstr.Getlenght()=1);
 }

解决方案 »

  1.   

    char* toASCII(char * str)
    {
      CString ascstr;
      char *buf[3];
      int loop, lenth=strlen(str);
      for(loop=0;loop<lenth;loop++)
      {
          
          sprintf(buf,"%d",str[loop]);
          ascstr+=buf;
        }
      return ascstr.Getbuf(ascstr.Getlenght()+1);
    }   
      

  2.   

    好方法!
    其实如果不觉得麻烦的话,建立一个LOOKUP TABLE也可以简单快速的完整这个问题!
      

  3.   

    char * StrToAsc( char * str )
    {
          char * ret = new char [ strlen( str ) * 2 + 1 ];
          while( * str )
              {
              *(ret++) = *str/10 + '0';
              *(ret++) = *(str++)%10 + '0';
              }
          *ret = 0;
          return ret;
    }
      

  4.   

    错了,呵呵,不好意思。
    char * StrToAsc( char * str )
    {
          char * ret = new char [ strlen( str ) * 2 + 1 ];
          char * retptr = ret;
          while( * str )
              {
              *(ret++) = *str/10 + '0';
              *(ret++) = *(str++)%10 + '0';
              }
          *ret = 0;
          return retptr;
    }  
      

  5.   

    更快的算法:
    char * StrToAsc( char * str )
    {
         int length = strlen( str )*2;
         char * ret = new char[ length + 1 ];
         memset( ret , '3' , length );
         for( int i = 1 ; i < length ; i+=2 )
                 ret[ i ] = *str++;
         ret[length] = 0;
         return ret;
    }char * AscToStr( char * asc )
    {
         int length = strlen( asc ) /2;
         char * ret = new char[ length + 1 ];
         for( int i = 0 , asc++; i < length ; i ++ ,asc += 2  )
              ret[i] = *asc;
         return ret;
    }