zoukankan      html  css  js  c++  java
  • [置顶] 整数类型转换成string的几种方法

    整数类型转换成string的几种方法

        转载请说明出处:http://blog.csdn.net/cywosp/article/details/8980633

        最近遇到了要将整数类型转化成string的问题,网上搜罗了一下,总结了几种方法。如下:

    方法一:

    template<typename T>
    static size_t Convert (char buf[], const T value)
    {
    	static const char digits[] = "9876543210123456789";
    	static const char* zero = digits + 9;
    
    	T i = value;
    	char* p = buf;
    
    	do
    	{
    		int lsd = static_cast<int>(i % 10);
    		i /= 10;
    		*p++ = zero[lsd];
    	} while (i != 0);
    
    	if (value < 0)
    	{
    		*p++ = '-';
    	}
    	*p = '\0';
    	std::reverse (buf, p); // #include <algorithm>
    
    	return p - buf;
    }
    
    static inline void IntToString (std::string& out, const int value)
    {
        char buf[32];
        Convert<int>  (buf, value);
        out.append (buf);
    }


    方法二:

    static inline void IntToString (std::string& out, const int value)
    {
        char buf[32];
        snprintf (buf, sizeof (buf), "%d", value);  // snprintf is thread safe #include <stdio.h>
        out.append (buf);
    }


    方法三:

    static inline void IntToString (std::string& out, const int value)
    {
        std::strstream ss; // #include <strstream>
        ss <<  value;
        ss >> out;
    }


    方法四:

    static inline void IntToString (std::string& out, const int value)
    {
        char buf[32];
        itoa (value, buf, 10); // #include <stdlib.h>
        out.append (buf);
    }


    这几种方法中方法一速度很快。

  • 相关阅读:
    Entity Framework框架 (一)
    webAPI的常用操作
    图片添加水印和生成验证码
    ASP.NET中Page_Load()与Page_Init()的区别
    session常用操作
    非递归解决组合问题
    TemplateDoesNotExist 异常
    [android]不解锁刷机
    论记忆化搜索
    flex builder 4
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3102316.html
Copyright © 2011-2022 走看看