0

私は、「05/10/1996」などの日付形式のユーザー入力を受け取り、それを 3 つの整数に解析するプロジェクトに取り組んできました。1 つは月、1 つは日、1 つは年です。関数 getline() を見ていましたが、それを使用して一度に複数のオブジェクトを解析する方法がよくわかりませんでした。while ループでこれを行う方法はありますか? もしそうなら、私はこれに行き詰まっているので、助けていただければ幸いです。

4

2 に答える 2

1

これが方法の1つです-

void split(std::vector<std::string> &tokens, const std::string &text, char sep) {
    int start = 0, end = 0;
    while ((end = text.find(sep, start)) != std::string::npos) {
        tokens.push_back(text.substr(start, end - start));
        start = end + 1;
    }
    tokens.push_back(text.substr(start));
}

使用法 -

int main(int argc, const char * argv[]) {

    std::vector<std::string> tokens;

    std::string *text = new std::string("05/10/1996");

    split(tokens, *text, '/');

    int first = atoi(tokens[0].c_str());
    int second = atoi(tokens[1].c_str());
    int third = atoi(tokens[2].c_str());

    std::cout<<first<<std::endl;
    std::cout<<second<<std::endl;
    std::cout<<third<<std::endl;

    while (true);

    return 0;
}

これは、整数変数を使用してコンソールに出力します-

1996年5月10日

高度なソリューション/ディスカッションについては、この質問を参照してください。

于 2013-10-27T03:31:20.600 に答える
0
int m,d,y;
char dummy;
cin >> m >> dummy >> d >> dummy >> y;
于 2013-10-27T02:53:08.743 に答える