string與數字相互轉換

Curtis_發表於2019-03-12

一、reverse函式用法:

①、reverse函式標頭檔案: #include<algorithm> 。

②、reverse函式第二個引數為末元素的下一個地址。

 1.reverse函式反轉string

#include <iostream>
#include <algorithm>
//#include <cstring>
using namespace std;

int main() {
    string str;
    cin>>str;
    reverse(str.begin(), str.end());
    cout<<str<<endl;
    return 0;
}

結果:

2、reverse函式反轉陣列:

 

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

int main() {
    int num[]={1,2,3,4,5,6};
    
    reverse(num,num+5);
    
    for(int i=0;i<6;i++){
    	cout<<num[i]<<" ";    	
    }
    return 0;
}

 

二、string轉數字:

 

#include <iostream>
//#include<cstring>
using namespace std;

int main()
{
	string str;
	while(cin>>str)
	{
		int x=0;
		for(int i=0;i<str.length();i++)
		{
			x*=10;
			x+=(str[i]-'0');
		}
		cout<<x<<endl;
	}
}

 結果:

三、數字轉字串:

①、string"+"拼接,reverse反轉:

#include<iostream>
#include<algorithm>
//#include<cstring>
using namespace std;
int main()
{
	int num;
	while(cin>>num)
	{
		string str;
		while(num%10)
		{
			str+=('0'+(num%10));
			num/=10;
		}
		reverse(str.begin(),str.end());
		cout<<str<<endl;
	}
	
}

結果:

②、定義char陣列接收每位資料,再push_back string之中:

#include<iostream>
#include<string>
using namespace std;
int main()
{
    int x;
    char ts[1000];
    while(cin>>x)   //輸入數字 
    {
        int p=0;
        while(x)
        {
            ts[p++]=('0'+x%10);
            x/=10;
        }
        string s;
        
        for(int i=p-1;i>=0;i--)
		{
			s.push_back(ts[i]);
		}
		cout<<s<<endl;
    }
}

結果:

 

 

相關文章