2017-04-05 198 views
1

如何將string輸入分成兩個不同的int s?C++分割字符串輸入成兩個整數

我寫一個程序輸入兩種不同的餾分(如2/3)和我想在2/3讀取作爲字符串和由分隔符(在/)拆分它。

例子:

Input: 2/3 
Values: 
int num = 2; 
int denom = 3; 

例2:

Input: 11/5 
Values: 
int num = 11; 
int denom = 5; 

謝謝!

+0

那麼你可以這樣做:http://stackoverflow.com/questions/14265581/parse-split-a-string-in-c-using-string-delimiter-standard-c拆分字符串,你可以做http://stackoverflow.com/questions/194465/how-to-parse-a-string-to-an-int-in-c將字符串轉換爲int。 – Eddge

+0

對於簡單的任務,你可以這樣做:int a,b; char c; std :: cin >> a >> c >> b;' – Logman

+0

我忘了補充一點,你可以使用'stringstream'對象來代替'cin' – Logman

回答

1

對於一些很簡單的像「2/3」,你可以使用string.findstring.substr

string.find將返回字符串中的立場,即「/」字符所在。然後可以使用string.substr在「/」字符之前和之後分割字符串。沒有時間寫一個代碼示例,但如果你真的陷入困境,那麼當我回家時,PM和我會碰到一些東西。

0

如果使用g ++,請運行以下命令指定-std = C++ 11標誌。

#include <iostream> 
#include <string> 

void find_num_denom(int& num, int& denom, std::string input) { 
    int slash_index = input.find("/"); 
    num = std::stoi(input.substr(0, slash_index)); 
    denom = std::stoi(input.substr(slash_index + 1, input.length())); 
} 

int main() { 
    int n,d; 
    find_num_denom(n, d, "23/52"); 
    std::cout<<n<<" "<<d<<"\n"; 
    return 0; 
} 

這將返回23 52對我來說。讓我知道如果您有任何問題