c++數字和字符串的轉換


1  利用stringstream

   添加頭文件 #include<sstream>

   數字轉字符串

   #include <string>

  #include <sstream>

  int main(){
    double a = 123.32;
    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.32";
    stringstream ss;  
    ss << res;                  
    ss >> a;
    return 0;
  }

//此處包裝了一個方法,將一位的數字轉化成兩位的字符串

//0->"00"    1->''01"

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;
}

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM