• 数字,字符串和string的相互转化


    数字转字符串:

      itoa(int1, char*, int2); //将int1以int2进制存储在char*数组里

      ltoa(long, char*, int); //将long以int进制存储在char*数组里

      ultoa(unsigned long, char*, int); //将unsigned long以int进制存储在char*数组里

      gcvt(float, int, char*);

      //将float保留int位有效数字存储在char*数组里,四舍五入,科学计数法,注意如果是3,两位及以上有效数字会转化成3.,多一个小数点

      char*=ecvt(double, int, int*1, int*2);

      //将double的整数部分和int位小数去掉小数点存储在返回值char*里,返回的int*1是小数点位置,返回的int*2是0表示正数,1表示负数

      //超出int位的部分不补零

      char*=fcvt(double, int, int*1, int*2);

      //将double的整数部分和int位小数去掉小数点存储在返回值char*里,返回的int*1是小数点位置,返回的int*2是0表示正数,1表示负数

      //超出int位的部分补零

    数字转string:

      int x=3;

      string str=to_string(x); //若改成float或者double结果会自动保留6位小数,但只要是整数都没问题,所以时间允许的话更推荐下面这种方法

      double d=3.5;

      stringstream ss;

      ss<<d;

      string s=ss.str();

      ss.clear(); //clear才能使答案正确

      ss.str(“”); //重新赋值优化空间

    字符串转数字:

      int=atoi(char*); //把char*转化为int

      long=atol(char*); //把char*转化为long

      double=atof(char*); //将char*转化为double

    字符串转string:

      string str;

      str.assign(char*, int); //从char*开始的int个字符赋值给str,若省略int这个参数,则默认赋值到最后

    string转数字:

      int x;

      stringstream ss;

      string str;

      ss.str(str);

      ss>>x;

    string转字符串:

      string str;

      char*=str.c_str();

       

  • 相关阅读:
    HDU 5135(再思考)
    HDU 5105
    HDU 5135
    Codeforces 985E
    Codeforces 985D
    Codeforces 975D
    Codeforces 975C
    Codeforces 976D
    HDU 1024 Max Sum Plus Plus (DP,水题)
    HDU 1003 Max Sum(DP,水题)
  • 原文地址:https://www.cnblogs.com/St-Lovaer/p/11398993.html
Copyright © 2020-2023  润新知