Dain

写出一个可以工作的程序并不够

统计

留言簿(3)

积分与排名

良师益友

阅读排行榜

评论排行榜

string和int间的类型转换

int 转换 string
string  int2str( int  num)
{
   
if (num  ==   0 )
      
return   " 0 " ;
   
   
string  str  =   "" ;
   
int  num_  =  num  >   0   ?  num :  - 1   *  num;

   
while (num_)
   
{
      str 
=  ( char )(num_  %   10   +   48 +  str;
      num_ 
/=   10 ;
    }


   
if (num  <   0 )
      str 
=   " - "   +  str;

   
return  str;
}
string 转换 int
int  str2int( string  str)
{
   
int  i,len  =  str.size(),num  =   0 ;

    i 
=   0 ;   
   
if (str[ 0 ==   ' - ' )
      i 
=   1 ;
   
   
while (i  <  len)
   
{
      num 
=  num  *   10   +  ( int )(str[i]  -   ' 0 ' );
      i
++ ;
    }


   
if (str[ 0 ==   ' - ' )
      num 
*=   - 1 ;

   
return  num;
}

string和int间是可以自己写函数实现类型转换的,但是string和double就不太方便了,stirng转换double可以自定义函数实现,但是,double转换string就需要使用库函数了,如sprintf

posted on 2006-12-10 13:05 Dain 阅读(13385) 评论(10)  编辑 收藏 引用 所属分类: 算法

评论

# re: string和int间的类型转换 2006-12-10 19:09 cloudsea

不错呀!
以后要用就用您的了
3x  回复  更多评论   

# re: string和int间的类型转换 2006-12-12 11:48 hanson

itoa atoi 不可以用么  回复  更多评论   

# re: string和int间的类型转换 2006-12-12 12:03 Dain

当然可以阿
还有其他的库函数也可以的sscanf
@hanson
  回复  更多评论   

# re: string和int间的类型转换 2006-12-12 12:05 Dain

也可以自己写函数实现阿
@hanson
  回复  更多评论   

# re: string和int间的类型转换 2006-12-20 16:37 子弹

stringstream 也是不错的东东
:)  回复  更多评论   

# re: string和int间的类型转换 2007-01-04 09:56 Dain

Implementing itoa function is a popular interview question. Here’s one implementation from SAP.

char *itoa(int value)
{
int count, /* number of characters in string */
i, /* loop control variable */
sign; /* determine if the value is negative */
char *ptr, /* temporary pointer, index into string */
*string, /* return value */
*temp; /* temporary string array */

count = 0;
if ((sign = value) < 0) /* assign value to sign, if negative */
{ /* keep track and invert value */
value = -value;
count++; /* increment count */
}

/* allocate INTSIZE plus 2 bytes (sign and NULL) */
temp = (char *) malloc(INTSIZE + 2);
if (temp == NULL)
{
return(NULL);
}
memset(temp,'\0', INTSIZE + 2);

string = (char *) malloc(INTSIZE + 2);
if (string == NULL)
{
return(NULL);
}
memset(string,'\0', INTSIZE + 2);
ptr = string; /* set temporary ptr to string */

/*--------------------------------------------------------------------+
| NOTE: This process reverses the order of an integer, ie: |
| value = -1234 equates to: char [4321-] |
| Reorder the values using for {} loop below |
+--------------------------------------------------------------------*/
do {
*temp++ = value % 10 + '0'; /* obtain modulus and or with '0' */
count++; /* increment count, track iterations*/
} while (( value /= 10) >0);

if (sign < 0) /* add '-' when sign is negative */
*temp++ = '-';

*temp-- = '\0'; /* ensure null terminated and point */
/* to last char in array */

/*--------------------------------------------------------------------+
| reorder the resulting char *string: |
| temp - points to the last char in the temporary array |
| ptr - points to the first element in the string array |
+--------------------------------------------------------------------*/
for (i = 0; i < count; i++, temp--, ptr++)
{
memcpy(ptr,temp,sizeof(char));
}

return(string);
}
  回复  更多评论   

# re: string和int间的类型转换 2007-12-30 08:53 sdgsdg

http://video-porno-casalinghe.fatte-tun.info
http://xxx-latinas.fatte-tun.info
http://foto-donna-mature-porca.fatte-tun.info
http://video-porno-gay-gratis-cellulare.gradis-tun.info
http://gnocca-sventrate.fatte-tun.info
http://belle-anziane-in-collant.fatte-tun.info
http://transattive-transex.fatte-tun.info
http://lottatrici-erotiche.fatte-tun.info
http://ragazza-giovane-fanno-sesso.fatte-tun.info
http://piace-far-sesso-tovolo-nia-cucino.gradis-tun.info
http://sex-sesso-porno-gay.fatte-tun.info
http://negra-sesso-negra-troia-negra-culo-sborra-pompino.fatte-tun.info
http://immagine-cazzo-enorme-gratis.sculaccia-tun.info
http://culo-donna-formosi.fatte-tun.info
http://coppie-amatoriale.sculaccia-tun.info
http://porno-diciotenni.fatte-tun.info
http://mutandine-igienica-incontinenza.fatte-tun.info
http://gay-twinks-teen-young.gradis-tun.info
http://porno-lesbian-ass-finger-ring-clip-movie.sculaccia-tun.info
http://sexishop-salerno.sculaccia-tun.info
http://erotica-tour-2006.gradis-tun.info
http://sfondami-il-culo.fatte-tun.info
http://sexy-bar-la-tv-piccante.sculaccia-tun.info
http://porno-gay-sado.fatte-tun.info
http://video-sborrata-gay-gratis.fatte-tun.info
http://vecchia-arrapata.fatte-tun.info  回复  更多评论   

# re: string和int间的类型转换 2008-09-28 10:23 xx

怎么非的自己造一遍轮子呢  回复  更多评论   

# re: string和int间的类型转换 2009-05-03 12:51 创意产品

学习了,谢谢  回复  更多评论   

# re: string和int间的类型转换 2009-07-23 11:50 杨全

谢谢啦!@Dain
  回复  更多评论   


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理