gpt4 book ai didi

c++ - 将字符串转换为三个整数?

转载 作者:行者123 更新时间:2023-11-30 00:50:23 26 4
gpt4 key购买 nike

我有一个 C++ 项目,它有一个日期类,其中包含三个变量 int day、month 和 year

class date{
int day;
int month;
int year;
public:
date(); // default constructor
date(int, int, int); // parameterized constructor with the three ints
date(string) // this constructor takes a date string "18/4/2014" and assigns
18 to intday, 4 to int month and 2014 to int year

};

我想知道如何拆分字符串日期并将子字符串分配给三个变量 int 天、月和年

最佳答案

您可以使用 sscanf()istringstream解析字符串。

date::date(string s)
: day(0), month(0), year(0)
{
int consumed;
if (sscanf(s.c_str(), "%d/%d/%d%n", &day, &month, &year, &consumed) == 3)
{
if (consumed == s.length())
return;
}
throw std::runtime_error("invalid input");
}

date::date(string s)
: day(0), month(0), year(0)
{
char ignore;
std::istringstream iss(s);
iss >> day >> ignore >> month >> ignore >> year;
if (!iss || !iss.eof())
throw std::runtime_error("invalid input");
}

关于c++ - 将字符串转换为三个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25276805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com