C ++将字符串输入拆分为两个整数

时间:2017-04-05 16:02:44

标签: c++ string parsing fractions

如何将string输入拆分为两个不同的int

我正在编写一个程序来输入两个不同的分数(比如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 个答案:

答案 0 :(得分:1)

对于非常简单的事情,例如" 2/3"您可以使用string.findstring.substr

string.find会在字符串中返回' /'人物居住。然后,您可以使用string.substr在' /'之前和之后分割字符串。字符。没有时间写一个代码示例,但是如果你真的被困住了,那么当我回到家时,PM我和我会吵架。

答案 1 :(得分: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。如果您有任何问题,请告诉我