文章目录



      1 利用stringstream

      数字转字符串

      • 头文件 #include
      #include <string>
      #include <sstream>

      int main(){
      double a = 123.456;
      string res;
      stringstream ss; // 定义流ss
      ss << a; // 将数字a转化成流ss
      ss >> res; // 将流ss转化成字符串
      return 0;
      }

      字符串转数字


      #include <string>
      #include <sstream>

      int main(){
      double a ;
      string res= "123.456";
      stringstream ss;
      ss << res;
      ss >> a;
      return 0;
      }
      //此处包装了一个方法,将一位的数字转化成两位的字符串

      // 比如说 : 0->"00" 3->''03"
      string transform(int num)
      {
      string res;
      stringstream ss;
      ss<<num;
      ss>>res;
      if(num<10)
      {
      res="0"+res;
      }
      return res;
      }

      2.利用 sprintf()函数和sscanf()函数

      sprintf() 用于将数字转化为字符串

      #include <iostream>
      #include <string>
      using namespace std;

      int main()
      {
      char str[10];
      int a=1234321;
      //将整数转化为字符串
      sprintf(str,"%d",a);
      int len=strlen(str);
      cout<<"字符串"<<str<<endl;
      cout<<"长度"<<len<<endl;

      char str1[10];
      double b=123.321;
      / /将浮点数转化为字符串
      sprintf(str1,"%.3lf",b);
      int len1=strlen(str1);
      cout<<"字符串"<<str1<<endl;
      cout<<"长度"<<len1<<endl;
      return 0;
      }


      sscanf() 用于将字符串转化为数字

      #include <iostream>
      #include <string>
      using namespace std;

      int main()
      {
      char str[]="1234321";
      int a;
      sscanf(str,"%d",&a);
      cout<<a<<endl;

      char str1[]="123.321";
      double b;
      sscanf(str1,"%lf",&b);
      cout<<b<<endl;
      return 0;
      }