如何將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;
謝謝!
如何將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;
謝謝!
對於一些很簡單的像「2/3」,你可以使用string.find和string.substr
string.find將返回字符串中的立場,即「/」字符所在。然後可以使用string.substr在「/」字符之前和之後分割字符串。沒有時間寫一個代碼示例,但如果你真的陷入困境,那麼當我回家時,PM和我會碰到一些東西。
如果使用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對我來說。讓我知道如果您有任何問題
那麼你可以這樣做: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
對於簡單的任務,你可以這樣做:int a,b; char c; std :: cin >> a >> c >> b;' – Logman
我忘了補充一點,你可以使用'stringstream'對象來代替'cin' – Logman