zoukankan      html  css  js  c++  java
  • C/C++ 数字转成字符串, 字符串转成数字

    数字转字符串:
    用C++的streanstream:

    #include <sstream>
    #Include 
    <string>
    string num2str(double i)
    {
            stringstream ss;
            ss
    <<i;
            
    return ss.str();
    }


    字符串转数字:

    int str2num(string s)
     
    {   
            
    int num;
            stringstream ss(s);
            ss
    >>num;
            
    return num;
    }


    上面方法很简便, 缺点是处理大量数据转换速度较慢..
    C library中的sprintf, sscanf 相对更快

    可以用sprintf函数将数字输出到一个字符缓冲区中. 从而进行了转换...
    例如:
    已知从0点开始的秒数(seconds) ,计算出字符串"H:M:S",  其中H是小时, M=分钟,S=秒

             int H, M, S;
            
    string time_str;
            H
    =seconds/3600;
            M
    =(seconds%3600)/60;
            S
    =(seconds%3600)%60;
            
    char ctime[10];
            sprintf(ctime, 
    "%d:%d:%d", H, M, S);             // 将整数转换成字符串
            time_str=ctime;                                                 // 结果 



    与sprintf对应的是sscanf函数, 可以将字符串转换成数字

        char    str[] = "15.455";
        
    int     i;
        
    float     fp;
        sscanf( str, 
    "%d"&i );         // 将字符串转换成整数   i = 15
        sscanf( str, "%f"&fp );      // 将字符串转换成浮点数 fp = 15.455000
        
    //打印
        printf( "Integer: = %d ",  i+1 );
        printf( 
    "Real: = %f ",  fp+1 ); 
        
    return 0;



    输出如下:
    Integer: = 16
     Real: = 16.455000

  • 相关阅读:
    451. Sort Characters By Frequency
    424. Longest Repeating Character Replacement
    68. Text Justification
    44. Wildcard Matching
    160. Intersection of Two Linked Lists
    24. Swap Nodes in Pairs
    93. 递归实现组合型枚举
    98. 分形之城
    97. 约数之和
    96. 奇怪的汉诺塔
  • 原文地址:https://www.cnblogs.com/nafio/p/9137603.html
Copyright © 2011-2022 走看看